gpt4 book ai didi

android - 仅在特定设备上运行时未找到资源异常

转载 作者:行者123 更新时间:2023-12-05 05:01:54 31 4
gpt4 key购买 nike

我在 Android Studio 模拟器和仅针对 oe 设备的 Google PLay 预启动检查中遇到崩溃。

列出的资源肯定存在于我的源代码中 - 它位于 drawable 文件夹中,而不是任何特定的 dpi 文件夹中 - 它可以在我尝试过我的应用程序的所有其他设备上找到,即仿真器设备、预发布测试设备和一些物理设备。

Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_amalfi_pro_link.xml from drawable resource ID #0x7f080071

我可以看到与失败的设备的主要区别在于它的分辨率较低 - 因此我检查矢量可绘制对象是否位于可绘制文件夹中,而不是特定的 dpi 文件夹中。

崩溃设备也是 API 19,而工作设备是更高版本。 (对于我尚未在启动前测试中针对 API 21 进行全面调查的其他资源,我遇到了类似的崩溃)。

请注意,我在我的 build.gradle (app) 中启用了对矢量绘图的传统支持:

    vectorDrawables {
useSupportLibrary true
}

我尝试了一个干净的构建 - 没有变化。

我已尝试使缓存失效并重建 - 没有任何变化。

我曾尝试将可绘制对象更改为其他内容,然后改回并重建 - 没有任何变化。

我确实在同一个模拟器测试设备上用不同的可绘制对象发生了同样的崩溃,并用不同的可绘制对象替换那个可绘制对象避免了第一次崩溃并将我转移到下一个导致崩溃的可绘制对象,所以它似乎确实相关到特定的 drawables - 但 drawable 在那里并且在其他设备上工作。

这太令人沮丧了,我只是不知道还能在哪里寻找问题。

更新:

根据以下内容要求澄清所讨论的矢量可绘制对象是否用于任何其他 Activity ,我进行了更多测试。

  • 如果我将失败的可绘制对象添加到我的主要 Activity 中,它在我的主要 Activity 中可以完美运行,但仍然无法在导致崩溃的 Activity 中找到并仍然导致崩溃
  • 我的项目中似乎至少有三个矢量可绘制对象在三个不同的 Activity 中表现相同
  • 如果我用另一个矢量可绘制对象(不是导致崩溃的其他矢量可绘制对象)替换崩溃 Activity 中有问题的可绘制对象,则相关 Activity 不会崩溃。
  • 如果我将三个崩溃 Activity 中的有问题的可绘制对象替换为其他有问题的可绘制对象之一,则该 Activity 崩溃并报告找不到新的有问题的可绘制对象。

我已经检查了可绘制对象的 XML,它与我在此项目中使用的其他矢量可绘制对象相同(路径细节除外),不会导致崩溃。

最佳答案

release 1.1.0-alpha01 of the AndroidX AppCompat library 开头,复合矢量绘图有“兼容”属性:

  • app:drawableTopCompat
  • app:drawableLeftCompat
  • app:drawableStartCompat
  • 等等

您必须使用 AppCompatTextView利用这些属性。如果你的布局被 LayoutInflater 膨胀了从 AppCompat 主题构建,这将在您使用 <TextView> 时自动发生标签。如果不是,则必须将它们明确指定为 <androidx.appcompat.widget.AppCompatTextView>标签。

关于android - 仅在特定设备上运行时未找到资源异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62477470/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com