android.view.InflateException 膨胀类片段时出错,二进制 XML 文件第 1 行?
Posted
技术标签:
【中文标题】android.view.InflateException 膨胀类片段时出错,二进制 XML 文件第 1 行?【英文标题】:android.view.InflateException Error inflating class fragment, Binary XML file line #1? 【发布时间】:2016-11-16 10:08:01 【问题描述】:android 项目给出 InflateException 错误。
这是来自 Android Studio Android Monitor 的错误:
--------- 崩溃开始 07-14 00:03:23.801 13726-13726/com.example.romi.parcelablecreatortest E/AndroidRuntime: 致命例外: main 进程:com.example.romi.parcelablecreatortest,PID:13726 java.lang.RuntimeException:无法启动活动 ComponentInfocom.example.romi.parcelablecreatortest/com.example.romi.parcelablecreatortest.MainActivity:android.view.InflateException:二进制 XML 文件第 1 行:二进制 XML 文件第 1 行: 膨胀类片段时出错 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在 android.app.ActivityThread.-wrap11(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:android.view.InflateException:二进制 XML 文件第 1 行:二进制 XML 文件第 1 行:膨胀类片段时出错 在 android.view.LayoutInflater.inflate(LayoutInflater.java:539) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 在 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_
android:layout_/>
MainActivity.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);
【问题讨论】:
【参考方案1】:你没有初始化TopRatedMovieJson[] topRatedMovieJson;
这就是你得到NPE
at的原因
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's
更新
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();
【讨论】:
谢谢。我在 onCreate 中初始化它。 topRatedMovieJson = new TopRatedMovieJson[1000]; 但它仍然没有解决 InflateException 错误。还有其他解决方案可以尝试吗? @QuartZ 我没有时间解决您的完整应用程序的错误。首先阅读完整的 logcat 并尝试自己出错。如果您在其他行中遇到错误,请编辑您的问题。 请尝试清理您的项目并重建它! 谢谢。我修复它。问题出在xml中。以上是关于android.view.InflateException 膨胀类片段时出错,二进制 XML 文件第 1 行?的主要内容,如果未能解决你的问题,请参考以下文章