Android报”Resources.NotFoundException”如何解决?

  • Post category:Android

Android开发中,当我们运行程序时,可能会遇到”Resources.NotFoundException”异常。这种异常通常是由于调用了不存在或不正确的资源造成的。以下是详细解释和解决办法:

1.异常原因

Android应用程序通常包含许多资源,包括布局(layout)、字符串(string)、图片(images)等,当我们使用这些资源时,如果资源不存在或者资源命名错误,就会导致”Resources.NotFoundException”异常错误。

2.解决办法

2.1 检查资源的命名

在调用资源时,务必要确认资源的命名是否正确,尤其是在资源名字母大小写敏感的情况下。如果你的资源存放在特定的目录下,记住要添加相应的目录名(如:drawable/、layout/等)。

2.2 检查资源是否存在

在资源搜索路径中搜索是否存在指定资源。首先要确认资源是否存在(图片路径是否正确,layout视图文件名是否正确等),其次需要确认是否存放在与资源调用相符的文件夹下。

2.3 运行代码时检查ID是否存在

如果你使用了ID调用资源,要确保ID定义存在并且和调用代码相匹配。如果ID不存在,就会抛出”Resources.NotFoundException”异常错误。

2.4 清除缓存

如果检查以上步骤之后,问题仍然存在,可以尝试清除Android设备缓存,以确保加载的是最新的资源文件。

示例说明

下面以两个常见的场景举例,来说明”Resources.NotFoundException”异常的原因和解决方法。

例一:图片资源不存在

在布局(.xml)文件中引用了一个名为picture的图片资源,但是该图片实际上不存在或命名错误,这就会导致”Resources.NotFoundException”异常错误的产生。

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/picture" />

解决方法是检查图片资源是否存在、资源名字是否正确、路径是否正确等。

例二:布局文件不存在

如果在代码中调用View.inflate()方法加载布局文件时,如果布局文件名称不存在或者存放位置错误,也会抛出”Resources.NotFoundException”异常错误。

View view = LayoutInflater.from(context).inflate(R.layout.item_view, null);

解决方法是检查布局文件是否存在、文件名是否正确、存放位置是否正确等。

以上是针对”Resources.NotFoundException”异常的原因和解决方法,希望对大家有所帮助。