Android:如何追查InflateException的起源?

在开始我的应用程序时,我在Logcat中得到以下警告:

04-09 10:28:17.830: WARN/WindowManager(52): Exception when adding starting window 04-09 10:28:17.830: WARN/WindowManager(52): android.view.InflateException: Binary XML file line #24: Error inflating class <unknown> 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.createView(LayoutInflater.java:513) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.inflate(LayoutInflater.java:385) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:2153) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:2207) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.java:1395) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneWindowManager.addStartingWindow(PhoneWindowManager.java:818) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.server.WindowManagerService$H.handleMessage(WindowManagerService.java:8794) 04-09 10:28:17.830: WARN/WindowManager(52): at android.os.Handler.dispatchMessage(Handler.java:99) 04-09 10:28:17.830: WARN/WindowManager(52): at android.os.Looper.loop(Looper.java:123) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.server.WindowManagerService$WMThread.run(WindowManagerService.java:531) 04-09 10:28:17.830: WARN/WindowManager(52): Caused by: java.lang.reflect.InvocationTargetException 04-09 10:28:17.830: WARN/WindowManager(52): at android.widget.FrameLayout.<init>(FrameLayout.java:79) 04-09 10:28:17.830: WARN/WindowManager(52): at java.lang.reflect.Constructor.constructNative(Native Method) 04-09 10:28:17.830: WARN/WindowManager(52): at java.lang.reflect.Constructor.newInstance(Constructor.java:446) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.createView(LayoutInflater.java:500) 04-09 10:28:17.830: WARN/WindowManager(52): ... 13 more 04-09 10:28:17.830: WARN/WindowManager(52): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x1010059 a=-1} 04-09 10:28:17.830: WARN/WindowManager(52): at android.content.res.Resources.loadDrawable(Resources.java:1677) 04-09 10:28:17.830: WARN/WindowManager(52): at android.content.res.TypedArray.getDrawable(TypedArray.java:548) 04-09 10:28:17.830: WARN/WindowManager(52): at android.widget.FrameLayout.<init>(FrameLayout.java:91) 04-09 10:28:17.830: WARN/WindowManager(52): ... 17 more 

我的应用程序从以下启animation面开始:

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:windowBackground="@color/white" android:background="@color/white" android:layout_width="fill_parent" android:layout_height="fill_parent" android:foregroundGravity="center"> <ImageView android:id="@+id/ImageView01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:adjustViewBounds="true" android:scaleType="centerInside" android:src="@drawable/splash" android:layout_gravity="center" /> </ScrollView> 

闪屏是闪屏中显示的图像。 我有这四个文件夹用于在我的应用程序中存储drawables:

/ RES /抽拉-HDPI
/ RES /抽拉-LDPI
/ RES /抽拉-MDPI
/ RES /抽拉-nodpi

飞溅图像在前三个版本中有自己的版本,并显示正确。 从ImageView删除src属性将删除图像,但不是例外。

我有点失落,在哪里寻找exception的原因。 我甚至不知道这是否真的在这个布局文件等问题

你将如何去寻找这个警告的原因?

我有同样的确切的错误。 唯一有意义的xml行24是我的应用程序清单,它恰好是应用程序的结束标记。 我将其追溯到我为应用程序添加的自定义主题 – 我没有定义样式的父项。 所有我需要做的是添加父=“android:主题”我的风格,我的错误消失了。

 <style name="MyTheme" parent="android:Theme"> ... </style> 
 04-09 10:28:17.830: WARN/WindowManager(52): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x1010059 a=-1 

这条线是赠品。 系统对你的某个资源不满意,可能是'src'资源,可能是android:src="@drawable/splash"

在2.0模拟器上运行时遇到了类似的错误。 我使用了更新版本的API(版本7,2.1-update1),它工作。

我有同样的问题,这是因为我通过应用程序上下文而不是活动上下文。

错误是在你的XML文件的第24行。 那一行包含什么? 通过错误消息的外观

 android.view.InflateException: Binary XML file line #24: Error inflating class <unknown> 

你正在使用一个自定义的类,并没有正确定义的东西。 例如,你是否正确定义了包名? 也许它的构造函数没有格式化? 我们必须看到XML文件,特别是第24行的内容,才能够提供更多的信息。

我知道这有点晚了,但我花了一整天的时间来试图找出这个问题,最后在这个问题的帮助下,我意识到在我尝试的例子中使用了一个XML文件的特性,没有抓住它,因为文件没有改变。 一旦我对XML文件进行了随机编辑并保存了该文件,那么出现了关于后来的API的错误。

经过这么多忙碌的研究,find答案,为什么应用程序崩溃,为什么不显示logcat

我刚刚取代了这个

 android:configChanges="orientation|keyboardHidden" 

 android:configChanges="keyboardHidden|orientation|screenSize" 

在活动标签中。