8

我正在检查我的错误报告,有时我们会从我们的应用程序中收到此错误报告。我无法指出真正的问题是什么。此资源确实存在,大多数设备都可以正常工作,但某些特定设备(如 LG-E510 或 U8815)无法加载此资源。

有任何想法吗?

android.content.res.Resources$NotFoundException: File res/drawable-xhdpi/action_bar_search_icon.png from drawable resource ID #0x7f02007f
at android.content.res.Resources.loadDrawable(Resources.java:1714)
at android.content.res.Resources.getDrawable(Resources.java:581)
at com.actionbarsherlock.internal.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:384)
at com.actionbarsherlock.internal.view.menu.ActionMenuItemView.initialize(ActionMenuItemView.java:128)
at com.actionbarsherlock.internal.view.menu.ActionMenuPresenter.bindItemView(ActionMenuPresenter.java:192)
at com.actionbarsherlock.internal.view.menu.BaseMenuPresenter.getItemView(BaseMenuPresenter.java:176)
at com.actionbarsherlock.internal.view.menu.ActionMenuPresenter.getItemView(ActionMenuPresenter.java:178)
4

2 回答 2

8

正如您所说,如果电话/选项卡访问 xhdpi 目录,那么我们希望它适当地缩放图像以适合屏幕。因此,我们希望如果资源存在于任何一个目录中,那么我们将永远不会看到 ResourceNotFound 异常。然而:

xhdpi 仅在 Android SDK 8 中引入,因此如果您以 SDK 7 及更早版本为目标,您可能会遇到问题:

仅在 Android 应用程序中使用 XHDPI 可绘制对象?

Android 可能无法访问 xhdpi 目录的另一个原因是设备是否在屏幕兼容模式下运行:

Android - 放置在 res/drawable-xhdpi 中的超大图像没有显示在平板电脑模拟器上,为什么?

另一个可能的原因是,如果您的可绘制对象非常小,并且由于缩放,它的一个尺寸被舍入为零:

由于宽度和高度,未找到 Android 资源

最后,一些 OEM 版本的 Android 可能会以非标准方式实现这一点(例如,如果他们的设备是 hdpi,则通过不搜索 xhdpi 目录来“增强性能”):

Android Drawable hdpi xhdpi mdpi ldpi 概念

于 2013-07-29T00:45:50.347 回答
-1

您应该将可绘制对象保存在 hdpi 文件夹中。由于无法使用它的手机像素较少,因此它们无法显示图像。只需重新定位文件。

编辑:它们的像素较少,因为它们的屏幕尺寸较小。

于 2013-07-24T21:52:50.490 回答