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/