即使资源存在于可绘制文件夹中,资源未找到异常(无法找到资源 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
存在于drawable
和drawable-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)的主要内容,如果未能解决你的问题,请参考以下文章