【发布时间】:2016-05-25 08:51:18
【问题描述】:
我遇到了充气问题,我不知道如何解决,因为这是一个奇怪的问题。我在三星和华为设备(huawei gra_l09)的第 60 行的BaseFragment 课程中遇到了崩溃。代码如下:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
int contentView = onFragmentContentView();
if(contentView == 0)
throw new IllegalArgumentException("onFragmentContentView must be not equal 0");
View layout = inflater.inflate(contentView, container, false); //!!line 60
ButterKnife.inject(this, layout);
onCreateFragmentView(layout, container, savedInstanceState);
return layout;
}
我不确定主题是否是一个原因?我用过 Theme.AppCompat.Light。
致命异常:android.view.InflateException:二进制 XML 文件行
2: 类膨胀错误
at android.view.LayoutInflater.createView(LayoutInflater.java:633) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892) at android.view.LayoutInflater.rInflate(LayoutInflater.java:802) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at com.vyda.stream.fragments.BaseFragment.onCreateView(BaseFragment.java:60) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763) at java.lang.reflect.Constructor.newInstance(Constructor.java) at java.lang.reflect.Constructor.newInstance(Constructor.java:288) at android.view.LayoutInflater.createView(LayoutInflater.java:607) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892) at android.view.LayoutInflater.rInflate(LayoutInflater.java:802) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at com.vyda.stream.fragments.BaseFragment.onCreateView(BaseFragment.java:60) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:977) > byte allocation with 3357954 free bytes and 3MB until OOM at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763) at dalvik.system.VMRuntime.newNonMovableArray(VMRuntime.java) at android.graphics.BitmapFactory.nativeDecodeAsset(BitmapFactory.java) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609) at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444) at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:988) at android.content.res.Resources.loadDrawableForCookie(Resources.java:2480) at android.content.res.Resources.loadDrawable(Resources.java:2387) at android.content.res.TypedArray.getDrawable(TypedArray.java:749) at android.view.View.<init>(View.java:3754) at android.view.ViewGroup.<init>(ViewGroup.java:498) at android.widget.RelativeLayout.<init>(RelativeLayout.java:249) at android.widget.RelativeLayout.<init>(RelativeLayout.java:245) at android.widget.RelativeLayout.<init>(RelativeLayout.java:241) at java.lang.reflect.Constructor.newInstance(Constructor.java) at java.lang.reflect.Constructor.newInstance(Constructor.java:288) at android.view.LayoutInflater.createView(LayoutInflater.java:607) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892) at android.view.LayoutInflater.rInflate(LayoutInflater.java:802) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at com.vyda.stream.fragments.BaseFragment.onCreateView(BaseFragment.java:60) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:977) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)
[编辑]:全班代码:http://pastebin.com/nSCpY35Y
【问题讨论】:
-
onFragmentContentView() 返回什么?
-
还包括您的布局 XML 文件 - 这样我们也可以检查它,看看那里是否没有任何问题。
-
这是在每个子类中被覆盖的抽象方法。它返回无效。一般我用这个方法调用一些init方法或者注入对象
-
@ishmaelMakitla 我无法放置 XML 文件,因为我不知道哪个 exaclty 文件是错误的。每个片段都扩展
BaseFragment并且在崩溃日志中我没有看到 XML 文件名 :( -
通常,您有一个布局文件,其中包含您的片段或其占位符 - 这是您可以包含的布局 XML。
onFragmentContentView()方法返回什么?你能告诉我们这个方法的代码吗?
标签: android android-layout android-fragments android-inflate inflate-exception