android.view.InflateException:二进制XML文件行#12:错误膨胀类<unknown>

我收到许多在主题中显示的错误。 这些错误似乎是偶然的,我不能再现它们。 从堆栈,我可以了解到,我的不同的布局资源可能会出现这样的错误。 XML的行也是不同的。

任何人都可以解释为什么发生这个错误? 我能做些什么来解决这个问题?

============================================================= com.fsp.android.f generated the following exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown> --------- Stack trace --------- 1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649) 2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674) 3. android.app.ActivityThread.access$2200(ActivityThread.java:131) 4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975) 5. android.os.Handler.dispatchMessage(Handler.java:99) 6. android.os.Looper.loop(Looper.java:123) 7. android.app.ActivityThread.main(ActivityThread.java:4702) 8. java.lang.reflect.Method.invokeNative(Native Method) 9. java.lang.reflect.Method.invoke(Method.java:521) 10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 12. dalvik.system.NativeStart.main(Native Method) ------------------------------- ----------- Cause ----------- android.view.InflateException: Binary XML file line #12: Error inflating class <unknown> 1. android.view.LayoutInflater.createView(LayoutInflater.java:513) 2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621) 6. android.view.LayoutInflater.inflate(LayoutInflater.java:382) 7. android.view.LayoutInflater.inflate(LayoutInflater.java:320) 8. android.view.LayoutInflater.inflate(LayoutInflater.java:276) 9. com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:208) 10. android.app.Activity.setContentView(Activity.java:1629) 11. com.solvek.sample.ui.BaseActivity.onCreate(BaseActivity.java:23) 12. com.solvek.sample.ui.tour.TourActivity.onCreate(TourActivity.java:161) 13. android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 14. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2587) 15. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674) 16. android.app.ActivityThread.access$2200(ActivityThread.java:131) 17. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975) 18. android.os.Handler.dispatchMessage(Handler.java:99) 19. android.os.Looper.loop(Looper.java:123) 20. android.app.ActivityThread.main(ActivityThread.java:4702) 21. java.lang.reflect.Method.invokeNative(Native Method) 22. java.lang.reflect.Method.invoke(Method.java:521) 23. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 24. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 25. dalvik.system.NativeStart.main(Native Method) ----------------------------- -------- Environment -------- Time =2010-12-20 08:27:35 AM Device =tmobile/htc_espresso/espresso/espresso:2.1-update1/ERE27/216830:user/release-keys Make =HTC Model =T-Mobile myTouch 3G Slide Product =htc_espresso App =com.fsp.android.f, version 2.0.9 (build 1232) 

这是XML的一个结果,然而这样的错误发生在其他xml中

 <?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android"> <ViewFlipper android:layout_gravity="fill" android:id="@+id/flipper" android:layout_height="fill_parent" android:layout_width="fill_parent"> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_1"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_2"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_3"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_4"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_5"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_6"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_7"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_8"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_9"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_10"/> <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_11"/> </ViewFlipper> <LinearLayout android:id="@+id/exit_bar" android:layout_gravity="top" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible"> <Button android:background="@drawable/orange_btn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:textStyle="bold" android:textColor="#000000" android:shadowColor="#ffffff" android:shadowRadius="1.6" android:shadowDx="1.5" android:shadowDy="1.3" android:id="@+id/exit_tour_btn" android:text="Exit" android:layout_marginLeft="20dip"/> <TextView android:layout_height="wrap_content" android:textColor="#ffffff" android:layout_gravity="center" android:layout_width="110dip" android:layout_marginLeft="20dip" android:textSize="16dip" android:textStyle="bold" android:text="Life360 Tour"/> </LinearLayout> <Button style="@style/BlueBtn" android:text="Continue" android:layout_marginTop="40dip" android:id="@+id/continue_btn" android:visibility="gone" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" /> <FrameLayout android:id="@+id/bottom_bar" android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible"> <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/left" android:layout_gravity="left|center" android:background="@drawable/tour_left" android:layout_marginLeft="10dip"/> <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/right" android:layout_gravity="right|center" android:background="@drawable/tour_right" android:layout_marginRight="10dip"/> </FrameLayout> </merge> 

膨胀exception实际上并不是问题,但实际上是来自布局中的另一个深层问题,然后将其包裹在InflateException中。 一个常见的问题是在尝试膨胀一个加载可绘制资源的imageview时出现内存不足exception。 如果其中一个资源具有较高的像素分辨率,则会占用大量内存,从而导致膨胀exception。

所以基本上validation您的可绘制图像中的像素分辨率只是布局所需的最小值。

在布局充气过程中, ViewFlipper将所有图像加载到内存中。 因为我的图像很大,需要很多内存,所以我将ViewFlipperreplace为ViewFlipper ,它可以使用ImageSwitcher等animation来改变图像,但是当时只加载一个图像。

这也可能发生,如果您使用支持库的VectorDrawable并忘记使用app:srcCompat而不是android:src

确切的错误是: 二进制XML文件行#XX:错误膨胀类ImageView

看到这个链接

我知道这个问题已经回答了,但是我仍然认为可能有人会遇到这样的问题。

在我的情况下,问题是我正在加载我的应用程序到手机,从res /值/维度@ resimes的res /布局/文件夹引用布局这里是它试图访问的font_22,它是在res / values-xlarge中定义/梦诗。

我实际上正在更新现有项目的用户界面。

我遇到了这个问题,因为我正在使用IDE Eclipse的地方我ctrl +空间提示,而编写xml的布局文件夹,它显示值的所有值以及值-xlarge文件夹,无论我正在写什么文件夹。

我也知道这两个文件中的值应该是相同的,以映射不同的屏幕。

希望这可以帮助有人遇到这种愚蠢的问题。

这个链接可能会帮助你。 尝试检查您的清单中的问题。 如果可以再次发生,请将整个堆栈跟踪logging下来,以便我们可以看到实际的错误。

编辑:我相信你已经检查了这个,但是你用于TourActivity布局的XML文件的第12行是什么?

我的图片大小只有14Kb,但问题是,devise师给了我1011px x 1819px(分辨率太高,因此导致InflateException)

我遇到了同样的bug,发现其根源是:

使用应用程序上下文来膨胀视图。

使用Activity Context进行膨胀修复了这个bug。

我有这个错误,因为我select主题作为材料的主题。 但是,当我试图在4.4.2上运行应用程序,它给了这个错误。

解决scheme:selectTheme_holo作为主题

我只有一个构造函数创build自定义视图时有同样的错误,尝试定义您的自定义视图的所有构造函数。

  public CustomWebView(Context context) { super(context); init(); } public CustomWebView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public CustomWebView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } 

我有同样的错误,我解决了从Drawable-mdpi文件夹到drawable文件夹的移动。 花了我一些时间来实现,因为在Eclipse中一切正常工作,而在Android Studio中,我得到了这些丑陋的运行时错误。

编辑说明:如果你正在从eclipse迁移到Android Studio,并且你的项目来自eclipse,那么可能会发生,所以要小心在Android Studio中与eclipse有一些不同之处。

我刚才有这个问题,并设法弄清楚是什么。 是在我的价值观引起问题的颜色引用。 所以手动定义它,而不是从下拉build议中使用一个。然后它的工作!

在我的情况下,当我使用浮动操作button并设置android:backgroundTint="#000"时,会发生此错误。 然后只是不要设置backgroundTint和问题解决。 希望这对你有所帮助。

对于我来说,这个错误信息在日志猫中实际上是不够的,所以这里是我做了什么来弄清楚是什么导致了这个问题:

(在日志猫的错误消息,它说,在我的HomeFragment.java膨胀一个特定的布局时发生错误)

  1. 我在布局膨胀之前放置了一个断点
  2. 我以debugging模式运行应用程序,直到达到特定的断点
  3. 我用我的光标select了行,然后运行Evaluate expression
    • Run > Evaluate Expressionalt - F8
  4. 结果向我展示了更多关于问题来源的信息,在我的例子中,这是一个使用tools:targetApi="lollipop"的可绘制文件tools:targetApi="lollipop" (该错误只发生在旧设备上)。