由android.view.InflateException引起二进制XML文件行#101:由android.content.res.Resources $ NotFoundException引起

时间:2018-10-25 13:02:58

标签: android bundle

从Crashlytics中收到此错误,影响了一些设备:

由android.view.InflateException引起 二进制XML文件第101行:二进制XML文件第101行:错误夸大类

由android.content.res.Resources $ NotFoundException引起 资源ID为#0x7f06008a的可绘制(缺少名称)

有趣的是,这只是自我在新的Android App Bundle中发布该应用程序以来才出现的。释放.apk时没有发生这种情况。实际上,为了解决该问题,我还原为将其发布为.apk。但我想从新的Android应用程序捆绑包中受益。我知道这与Drawable文件夹有关。这是xml文件中的第101行:

<ImageView
    android:id="@+id/learn_chords_help_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="0dp"
    android:paddingTop="20dp"
    android:src="@drawable/help"
    android:contentDescription="Learn Chords Help"
    android:layout_toRightOf="@id/learn_chords_button"
    android:layout_above="@id/creditText"
    />

这是我所有带有/不带有help.png的可绘制文件夹:

drawable -> help.png
drawable-hdpi -> help.png
drawable-nodpi -> No Help image
drawable-xhdpi -> No Help image
drawable-xxhdpi -> help.png

以下是发生错误的一些设备(根据Crashlytics的说法,我无法使用拥有的少数测试手机来复制它):Galaxy J7(2016)7.0,Optimus L40 4.42,m3 Note 5.1和Galaxy s4 4.4。 2)

这是否是Google Play的新应用程序捆绑包格式的错误,还是开发人员需要将所有带有资源的可绘制文件夹包含在其中?

2 个答案:

答案 0 :(得分:2)

由于help.png文件夹中没有xhdpi,因此会出现该错误,因为xhdpi720 X 1280px密度相关(例如:Galaxy J7)

您只能将xxhdpi图片放到no-dpi文件夹中,或将该图片放到所有文件夹中。

答案 1 :(得分:0)

在“应用级”的build.gradle文件中

这可能存在

bundle {
    density {
        enableSplit true
    }
    abi {
        enableSplit true
    }
    language {
        enableSplit false
    }
}

您可以删除density标记,也可以删除整个bundle标记,因为这是AAB的Beta版中的内容,现在Google将处理所有要拆分的资源。