即使资源存在于可绘制文件夹中,资源未找到异常(无法找到资源 ID)

Posted

技术标签:

【中文标题】即使资源存在于可绘制文件夹中,资源未找到异常(无法找到资源 ID)【英文标题】:Resources Not Found Exception (Unable to find resource ID) even though resources exist in drawable folder 【发布时间】:2020-02-12 23:55:41 【问题描述】:

我在 Crashlytics 中收到此崩溃报告:

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfocom.example.app/com.example.app.activities.TabActivity: android.view.InflateException: Binary XML file line #27: Binary XML file line #9: Binary XML file line #9: Error inflating class <unknown>
   at android.app.ActivityThread.performLaunchActivity + 2957(ActivityThread.java:2957)
   at android.app.ActivityThread.handleLaunchActivity + 3032(ActivityThread.java:3032)
   at android.app.ActivityThread.-wrap11(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage + 1696(ActivityThread.java:1696)
   at android.os.Handler.dispatchMessage + 105(Handler.java:105)
   at android.os.Looper.loop + 164(Looper.java:164)
   at android.app.ActivityThread.main + 6942(ActivityThread.java:6942)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.Zygote$MethodAndArgsCaller.run + 327(Zygote.java:327)
   at com.android.internal.os.ZygoteInit.main + 1374(ZygoteInit.java:1374)

--

Caused by android.content.res.Resources$NotFoundException
Drawable (missing name) with resource ID #0x7f080060

Caused by android.content.res.Resources$NotFoundException: Drawable (missing name) with resource ID #0x7f080060

这是我的 xml 布局文件:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
android:background="@color/white"
android:clickable="true"
android:focusable="true">

<RelativeLayout
    android:id="@+id/layout_header"
    android:layout_
    android:layout_
    android:background="@drawable/back_nav_new_color"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<!--    <ImageView
        android:id="@+id/iv_theme_dark"
        android:layout_
        android:layout_
        android:src="@color/old_background_main"
        android:layout_marginBottom="@dimen/px_3"
        android:layout_marginLeft="24dp"
        app:layout_constraintBottom_toTopOf="@id/iv_theme_light"
        app:layout_constraintVertical_chainStyle="packed"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginStart="24dp" />

    <ImageView
        android:id="@+id/iv_theme_light"
        android:layout_
        android:layout_
        app:layout_constraintBottom_toBottomOf="@id/layout_header"
        android:layout_marginLeft="24dp"
        android:src="@color/newColorPrimaryDark"
        android:layout_marginTop="@dimen/px_3"

        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/iv_theme_dark"
        android:layout_marginStart="24dp" />-->

<ImageView
    android:id="@+id/iv_profile"
    android:layout_
    android:layout_
    android:layout_marginTop="8dp"
    android:layout_marginEnd="24dp"
    android:layout_marginRight="24dp"
    android:contentDescription="@string/sample_description"
    android:scaleType="fitXY"
    android:src="@drawable/profile_avatar"
    app:layout_constraintEnd_toEndOf="@id/layout_header"
    app:layout_constraintTop_toTopOf="@id/layout_header" />

<TextView
    android:id="@+id/nav_header_fullname"
    android:layout_
    android:layout_
    android:layout_marginTop="5dp"
    android:gravity="center_vertical"
    android:textColor="@color/black_text"
    android:textSize="@dimen/sp_15"
    android:visibility="gone"
    app:layout_constraintEnd_toEndOf="@id/iv_profile"
    app:layout_constraintTop_toBottomOf="@id/iv_profile" />

<Button
    android:id="@+id/btn_login"
    style="@style/AppTheme.RoundedCornerCalenderButtonAllSellers"
    android:layout_
    android:layout_
    android:layout_marginTop="@dimen/px_4"
    android:text="@string/xml_log_and_reg_btn_login"
    android:textColor="@color/black_text"
    android:textSize="@dimen/sp_13"
    android:visibility="gone"
    app:layout_constraintEnd_toEndOf="@id/iv_profile"
    app:layout_constraintTop_toBottomOf="@id/iv_profile" />

<TextView
    android:id="@+id/nav_header_phonenumber"
    android:layout_
    android:layout_
    android:layout_marginBottom="12dp"
    android:gravity="center_vertical"
    android:text="@string/sample_mobile"
    android:textColor="@color/black_text"
    android:textSize="@dimen/sp_15"
    android:visibility="gone"
    app:layout_constraintBottom_toTopOf="@id/drawer_list"
    app:layout_constraintEnd_toEndOf="@id/iv_profile" />

<Button
    android:id="@+id/btn_register"
    style="@style/AppTheme.RoundedCornerCalenderButtonAllSellers"
    android:layout_
    android:layout_
    android:layout_marginTop="@dimen/px_4"
    android:text="@string/register"
    android:textColor="@color/black_text"
    android:textSize="@dimen/sp_13"
    android:visibility="gone"
    app:layout_constraintEnd_toEndOf="@id/btn_login"
    app:layout_constraintTop_toBottomOf="@id/btn_login" />

<ImageView
    android:id="@+id/iv_launch"
    android:layout_
    android:layout_
    android:layout_marginEnd="2dp"
    android:layout_marginRight="2dp"
    android:contentDescription="@string/sample_description"
    android:scaleX="-1"
    android:src="@drawable/ic_launch"
    android:visibility="invisible"
    app:layout_constraintBottom_toTopOf="@id/nav_header_phonenumber"
    app:layout_constraintEnd_toStartOf="@id/nav_header_fullname"
    app:layout_constraintTop_toBottomOf="@id/iv_profile"
    app:layout_constraintVertical_bias="0.68" />

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/drawer_list"
    android:layout_
    android:layout_
    android:paddingTop="@dimen/px_8"
    app:layout_constraintTop_toBottomOf="@+id/layout_header" />

</androidx.constraintlayout.widget.ConstraintLayout>

此崩溃在 4 台设备中发生了 12 次。我该如何解决这个问题?

【问题讨论】:

问题可能出在您的@drawable/profile_avatar@drawable/ic_launch 中,确保您的@drawable/profile_avatar@drawable/ic_launch 图像位于drawable 文件夹中,而不是drawable-v24 文件夹中 你能把它的相关java代码贴出来 @NileshRathod profile_avatar.png 存在于drawabledrawable-xhdpi 文件夹中,ic_launch.xml 存在于drawable 文件夹中。 @karthikvishnukumar Crash 与 java 类无关,因为它发生在 inflating line View v = inflater.inflate(R.layout.fragment_navigation_drawer, container, false); @AlirezaNoorali 。如果您在 textview 中将 int 设置为文本,则有可能会出现这种异常。也考虑这个检查 【参考方案1】:

当我为 28 版创建应用程序并尝试在 21 版设备上运行它时,也出现了同样的问题。我的所有 PNG 文件都在“res/drawable”中,看起来是这样。仔细观察,文件名后面会出现灰色的“(v24)”。实际上,除了一个之外的所有文件都在“res/drawable-v24”中。我将它们(在 Android Studio 之外)移动到“res/drawable”,一切都很好。

【讨论】:

【参考方案2】:

对于带有股票图标的矢量可绘制资产,我也遇到了同样奇怪的问题。 突然 my_image.xml 停止在设计选项卡中显示实际的 png 文件。我重新创建了它,它又开始工作了。如果图像资源具有 XML 文件,请双击该文件并检查“设计”选项卡(在代码/拆分/设计中),以查看项目是否正确读取您的资源。由于文件损坏,设计选项卡只显示黑色背景。

【讨论】:

【参考方案3】:

我认为你需要检查哪个文件夹有你的drawable,将它从drawable-v24移动到drawable应该会有所帮助。此外,如果您正在使用多个包,请确保将图像添加到正确的包的可绘制文件夹中。 清理并构建,您的错误将得到解决。 希望一切顺利。

【讨论】:

以上是关于即使资源存在于可绘制文件夹中,资源未找到异常(无法找到资源 ID)的主要内容,如果未能解决你的问题,请参考以下文章

Android:在已部署的应用程序中找不到资源异常

AAPT 错误:资源可绘制/...未找到

在按钮上绘制资源图标

无法加载资源 404(未找到) - 文件位置错误?

使用getResources时未找到FileSystem异常

未找到奇怪的资源问题?