Android FileNotFoundException res / drawable-hdpi / scrollbar_handle_vertical.9.png

时间:2012-04-24 22:22:33

标签: android android-layout

我的应用目前最严重的用户报告崩溃在下面。好像系统找不到文件res / drawable-hdpi / scrollbar_handle_vertical.9.png 下面的示例表明在绘制webview时会出现问题,但是对于我的应用程序中的其他活动也会发生这种情况,所有这些活动在大多数情况下都能正常工作。

我认为这是一个我不需要担心的Android资源。但是,为了测试,我从sdk获取文件并将其放入我的应用程序的最新版本的项目drawable-hdpi文件夹中。但是,我仍然在谷歌播放中观察崩溃报告。

有关可能发生的事情的任何想法?

我现在也没有使用progaurd,所以不能剥离它不应该的文件。

android.view.InflateException: Binary XML file line #26: Error inflating class com.android.internal.app.AlertController$RecycleListView
at android.view.LayoutInflater.createView(LayoutInflater.java:513)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at android.webkit.WebView$InvokeListBox.run(WebView.java:8308)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at com.android.internal.app.AlertController$RecycleListView.<init>(AlertController.java:703)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
at android.view.LayoutInflater.createView(LayoutInflater.java:500)
... 14 more
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-hdpi/scrollbar_handle_vertical.9.png from drawable resource ID #0x0
at android.content.res.Resources.loadDrawable(Resources.java:1714)
at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
at android.widget.AbsListView.<init>(AbsListView.java:630)
at android.widget.ListView.<init>(ListView.java:230)
at android.widget.ListView.<init>(ListView.java:226)
... 18 more
Caused by: java.io.FileNotFoundException: res/drawable-hdpi/scrollbar_handle_vertical.9.png
at android.content.res.AssetManager.openNonAssetNative(Native Method)
at android.content.res.AssetManager.openNonAsset(AssetManager.java:405)
at android.content.res.Resources.loadDrawable(Resources.java:1706)
... 22 more

2 个答案:

答案 0 :(得分:2)

一个(或多个设备)上似乎缺少此资源。即该设备上的Android版本缺少此文件。看看问题是否影响非常具体的设备将会很有趣。

我希望解决方案是在你的应用程序中使用drawable(而不是依赖于android中的一个)并确保你的引用,而不是某些设备上缺少的那个。

您可以使用BugSense等工具跟踪此类问题,以便在受影响的设备上收集数据。平台版本。如果您无法从Google Play商店报告中获取此信息,则此功能非常有用。

答案 1 :(得分:0)

当发生这种情况时再发生一种情况 - 当您使用在以后的Android版本中引入的属性/资源时。索引有一些复杂的映射属性,当appt生成R.java时,它可能会重叠一些旧的ID,并且会发生这种非常奇怪的错误。

对我来说,在视图设置中出现相同的错误 android:foreground="?android:attr/selectableItemBackground"

selectableItemBackground是在api 11中引入的,但是在模拟器上用api 7启动。

因此,请检查您的布局是否使用了晚于minSdkVersion引入的某些资源。可以在R.java reference

进行检查