由 android.content.res.Resources$NotFoundException 引起:即使资源存在,资源 ID 也存在可绘制对象(缺少名称)

Caused by android.content.res.Resources$NotFoundException: Drawable (missing name) with resource ID even the resource is there

提问人:Zhang Zhan 提问时间:10/14/2021 更新时间:9/6/2022 访问量:2905

问:

在某些 Android 设备上,我收到“Resources$NotFoundException: Drawable (missing name) with resource ID”错误,例如:

在 LGE Android 8.1 设备上,它抱怨

无法启动 Activity ComponentInfo{SplashActivity}:android.view.InflateException:二进制 XML 文件行 #20:二进制 XML 文件行 #20:扩充类 ImageView 时出错

对于以下部分。特别是,它抱怨“android:src=”@drawable/red_logo”"

    <ImageView
    android:id="@+id/logoImageView"
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:layout_marginStart="50dp"
    android:layout_marginEnd="50dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:src="@drawable/red_logo" />

我检查了源代码目录,“red_logo.png”已经存在于以下文件夹中:

  • 可绘制
  • 可绘制-HDPI
  • 可绘制的 ldpi
  • 可绘制的 MDPI
  • 可绘制-xhdpi
  • 可绘制-xxhdpi
  • 可绘制-xxxhdpi

下面是 Java 代码

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_splash); <---- Fails here
}

drawable 文件夹中red_logo.png的尺寸为 4864 × 2692,与 drawable-xxxhdpi 文件夹中的red_logo.png大小相同。是不是太大了?

我做了很多研究,但似乎找不到有效的答案。

谢谢。 此致敬意。

Java Android XML

评论

1赞 Rakesh Saini 10/14/2021
此 xml 文件中的第 20 行是哪一行?
0赞 Zhang Zhan 10/14/2021
@RakeshSaini 它是android:src=“@drawable/red_logo” />
0赞 Nitish 10/14/2021
4864 × 2692- 在图像视图100dp中使用图像时,图像的尺寸太大,请减小图像的大小。它可能失败,因为设备无法加载图像
0赞 Zhang Zhan 10/14/2021
是的,我也想到了那个@Nitish。推荐的图片尺寸是多少?
0赞 Rakesh Saini 10/14/2021
尝试使其低于 600 X 600,然后您可以通过提供 ImageView 宽度和高度来增加。

答:

0赞 shivang 9/6/2022 #1

这是由于缩放问题而发生的,因此,在这种情况下,请始终使用矢量资产而不是图像。为我工作。