【问题标题】:Android FileNotFoundException res/drawable-hdpi/scrollbar_handle_vertical.9.pngAndroid FileNotFoundException res/drawable-hdpi/scrollbar_handle_vertical.9.png
【发布时间】:2015-08-07 01:42:55
【问题描述】:

我的应用程序目前最严重的用户报告崩溃如下。系统似乎找不到文件 res/drawable-hdpi/scrollbar_handle_vertical.9.png 下面的示例表明绘制 webview 时会出现问题,但我的应用程序中的其他活动也会出现问题,所有这些活动大部分时间都可以正常工作。

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

对可能发生的事情有什么想法吗?

我现在也没有使用 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

【问题讨论】:

  • 该文件来自Android framework。也许您可以创建一个自定义主题并包含 &lt;item name="scrollbarThumbVertical"&gt;@android:drawable/scrollbar_handle_vertical&lt;/item&gt; 的替换以修复该错误。
  • 你好。有关此错误的任何更新可能尚未发布?我刚开始收到同样的问题,不知道为什么。

标签: android android-layout


【解决方案1】:

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

我希望解决方案是在您的应用本身中使用可绘制对象(而不是依赖 android 中的绘制对象)并确保引用您的对象,而不是某些设备上缺少的对象。

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

【讨论】:

  • 我只在 T-Mobile 网络上运行 Android 2.2.1 的 sgh-t959v 设备上看到此错误。
  • 我们也看到了同样的崩溃,在那个设备上,它被报告为运行 2.2.1 的 SGH T959V。
  • 我在 SDK 中的 Froyo 模拟器上看到了同样的问题。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多