【问题标题】:Resources$NotFoundException drawable-xhdpi from drawable resourceResources$NotFoundException drawable-xhdpi 来自可绘制资源
【发布时间】:2013-04-19 08:56:35
【问题描述】:

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

【问题讨论】:

  • 这个资源是否存在于drawable-xhdpi文件夹中,因为我们必须根据它们的分辨率来放置资源,这意味着低设备将使用ldpi文件夹中的资源,而中等设备将使用mdpi等...所以首先检查这个资源是否存在于适当的文件夹中。
  • 或者把你的资源放到默认的drawable文件夹中,这样系统会在没有合适的时候选择它
  • 设备能够将资源从 XHDPI 缩减到他们需要的任何密度。所以这不是问题。
  • 显然它正在 xhdpi 文件夹中显式地搜索资源。有吗?如果不是,它是在 drawable 中还是在 drawable-hdpi 中?
  • 资源在 xhdpi 中且仅在 xhdpi 中。

标签: android android-resources


【解决方案1】:

正如您所说,如果手机/选项卡访问 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

【讨论】:

    【解决方案2】:

    你应该把你的drawables保存在hdpi文件夹中。由于无法使用它的手机像素较少,因此它们无法显示图像。只需重新定位文件。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2018-01-21
      • 1970-01-01
      • 2021-01-06
      相关资源
      最近更新 更多