资源$ NotFoundException drawable-xhdpi来自drawable资源

时间:2013-04-19 08:56:36

标签: android android-resources

我正在查看我的错误报告,并且我们会不时从我们的应用程序中获取此错误报告。 我不能指出实际问题是什么。 这个资源确实存在,大多数设备工作正常但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)

2 个答案:

答案 0 :(得分:7)

正如您所说,如果手机/标签访问xhdpi目录,我们希望它适当缩放图像以适应屏幕。因此,我们希望如果资源存在于任何一个目录中,那么我们将永远不会看到ResourceNotFound异常。但是:

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

Only use XHDPI drawables in Android app?

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

Android - Extra large images placed in res/drawable-xhdpi aren't showing on tablet emulator, why?

另一个可能的原因是,如果您的drawable非常小,并且其尺寸之一由于缩放而四舍五入为零:

Android resource not found because of width and height

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

Android Drawable hdpi xhdpi mdpi ldpi concept

答案 1 :(得分:-1)

您应该将您的drawable保留在hdpi文件夹中。由于不能使用的手机具有较少的像素,因此无法显示图像。只需重新定位文件。

编辑:由于屏幕尺寸较小,因此像素较少。