java - android.view.InflateException 膨胀类 fragment 时出错,二进制 XML 文件行 #1?

标签 java android xml android-fragments parcel

Android 项目给出 InflateException 错误。

这是来自 Android Studio Android Monitor 的错误:

--------- beginning of crash 07-14 00:03:23.801 13726-13726/com.example.romi.parcelablecreatortest E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.romi.parcelablecreatortest, PID: 13726 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.romi.parcelablecreatortest/com.example.romi.parcelablecreatortest.MainActivity}: android.view.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class fragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: android.view.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class fragment at android.view.LayoutInflater.inflate(LayoutInflater.java:539) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.example.romi.parcelablecreatortest.MainActivity.onCreate(MainActivity.java:11)

代码如下:

activity_main.xml

<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment"
    android:name="com.example.romi.parcelablecreatortest.MainActivityFragment"
    android:layout="@layout/activity_main_activity_fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

主 Activity .java

package com.example.romi.parcelablecreatortest;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

最佳答案

你没有初始化 TopRatedMovieJson[] topRatedMovieJson;这就是为什么你在 NPE

java.lang.NullPointerException: storage == null at java.util.Arrays$ArrayList.(Arrays.java:38) at java.util.Arrays.asList(Arrays.java:155) at com.example.romi.parcelablecreatortest.MainActivityFragment.onCreate(MainActivityFragment.java:74)

MainActivityFragment 中更新

 public void jsonParser(String json) {

        final String LOG_TAG = MainActivityFragment.class.getSimpleName();

        // The variables that we want from the json file
        final String title = "original_title"; // JSONObject
        final String posterPath = "poster_path"; // JSONObject
        final String synopsis = "overview"; // JSONObject
        final String userRating = "popularity"; // JSONObject
        final String releaseDate = "release_date"; // JSONObject

        // Parsing the json file
        try {
            JSONArray jsonArray = new JSONArray(json);
            // for is used to cycle through the json array.
            topRatedMovieJson= new TopRatedMovieJson[jsonArray.length()];
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i); // getJSONObject(i) will take onw of the json array with i=0 as its first index
                topRatedMovieJson[i] = new TopRatedMovieJson(
                        jsonObject.getString(title),
                        jsonObject.getString(posterPath),
                        jsonObject.getString(synopsis),
                        jsonObject.getString(userRating),
                        jsonObject.getString(releaseDate)
                );
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

关于java - android.view.InflateException 膨胀类 fragment 时出错,二进制 XML 文件行 #1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38358132/

相关文章:

java - 如何获取 HttpOnly cookie

Android 在切换 Activity 时的性能

android - AudioTrack 不通过耳机播放

java 从 .txt 文件更新 .XML 文件

c++ - 使 Xerces 解析字符串而不是文件

java - 无法在 Jboss EAP 7.0 服务器中创建 oracle 数据源

Java 2d 游戏 - 增量时间和碰撞问题

android - 抽屉导航列表中的下划线菜单项

java - 如何在同一个类中强制执行 getter 调用

android - 以编程方式卸载android应用程序