【问题标题】:Resources$NotFoundException on Samsung三星上的资源$NotFoundException
【发布时间】:2015-03-11 10:06:37
【问题描述】:

我的一个应用在三星 S5(准确地说是 SM G900V)上崩溃了,但有以下例外:

android.content.res.Resources$NotFoundException: File res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png from drawable resource ID #0x7f0200e5
   at android.content.res.Resources$CRunnable_openmp.doOpenMP(Resources.java:1097)
   at android.content.res.Resources$__ompClass0.__doWork(Resources.java:1029)
   at com.samsung.javaomp.runtime.__OMPThread.run()
Caused by: java.io.FileNotFoundException: res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png
   at android.content.res.AssetManager.openNonAssetNative(AssetManager.java)
   at android.content.res.AssetManager.openNonAsset(AssetManager.java:408)
   at android.content.res.Resources$CRunnable_openmp.doOpenMP(Resources.java:1092)
   at android.content.res.Resources$__ompClass0.__doWork(Resources.java:1029)
   at com.samsung.javaomp.runtime.__OMPThread.run()

似乎应用无法从 android 操作系统访问某些可绘制对象。任何想法如何解决它?

更新:可能是这部分造成的,但这只是一个猜测:

Integer resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (resultCode == ConnectionResult.SERVICE_MISSING ||
        resultCode == ConnectionResult.SERVICE_DISABLED ||
        resultCode == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED) {
    Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 0);
    if (dialog != null) {
        //This dialog will help the user update to the latest GooglePlayServices
        dialog.show();
    }
}

更新:解压apk文件会显示这个文件res\drawable-xxhdpi-v4\common_signin_btn_icon_disabled_focus_light.9.png

【问题讨论】:

  • res/drawable-xxhdpi-v4目录下有common_signin_btn_icon_disabled_focus_light.9.png文件吗?
  • 我首先没有drawable-xxhdpi-v4 目录。在谷歌上搜索common_signin_btn_icon_disabled_focus_light.9.png让我觉得这是谷歌播放服务访问的一些内部资源。
  • 您的应用中是否有 Admob 并使用 ProGuard 进行了混淆?
  • 是的,该应用似乎使用了一个非常旧的支持库,并且 Google Play 服务已弃用它以获得更高的分辨率。无法从 android.support.v4.app 升级?
  • 问题是R.java中的索引是否正确对应,我的意思是资源ID。

标签: android drawable samsung-mobile


【解决方案1】:

这可能与 Android Gradle 插件 https://code.google.com/p/android/issues/detail?id=79325

同时,你可以将shrinkResources设置为false,问题就解决了。

【讨论】:

  • 问题在最新的 1.2.+ 中仍然存在,并且只影响三星设备。
  • 有人可以确认将shrinkResources 设置为false 可以解决问题吗?
  • 我正在使用 1.3.1 并且仍然发生
  • 使用 gradle:2.3.0-beta2 还是会发生,三星最差
【解决方案2】:

正如 pvin...@gmail 所说的 https://code.google.com/p/android/issues/detail?id=186013 尝试在 gradle 文件中禁用 shringResources:

shrinkResources false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 2015-04-13
    • 1970-01-01
    相关资源
    最近更新 更多