【问题标题】:Resource.NotFoundException even when drawable is present in all 6 drawable folderResource.NotFoundException 即使所有 6 个可绘制文件夹中都存在可绘制对象
【发布时间】:2022-12-23 19:10:03
【问题描述】:

我知道在 stackoverflow 上有很多类似的问题,但似乎没有一个能解决我的问题。

前面提到的问题总是有一些地方缺少drawable。这个项目不是这种情况。

错误日志中指向的行号将我带到这个 textView,它有一个 9-patch 图像作为背景

布局

<TextView
    android:clickable="true"
    android:focusable="true"
    android:id="@+id/update_available"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical|start"
    android:background="@drawable/tab_white_left_9"
    android:text="@string/update_available"
    android:textColor="@android:color/white"
    android:backgroundTint="@color/lead_color"
    app:drawableStartCompat="@drawable/ic_download"
    android:drawablePadding="@dimen/margin_5"
    android:paddingStart="@dimen/margin_5"
    style="@style/text_bold_11"
    app:drawableTint="@android:color/white"
    android:visibility="gone"/>

可绘制位置

  • res/drawable-ldpi/tab_white_left_9.9.png
  • res/drawable-mdpi/tab_white_left_9.9.png
  • res/drawable-hdpi/tab_white_left_9.9.png
  • res/drawable-xhdpi/tab_white_left_9.9.png
  • res/drawable-xxhdpi/tab_white_left_9.9.png
  • res/drawable-xxxhdpi/tab_white_left_9.9.png

错误日志

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{in.callific.quickinsure/in.callific.quickinsure.activity.HomeScreenActivityV2}: android.view.InflateException: Binary XML file line #16 in in.callific.quickinsure:layout/activity_home_screen_v2: Binary XML file line #580 in in.callific.quickinsure:layout/content_home_screen_activity_v2: Error inflating class TextView
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3813)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3975)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2377)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:233)
       at android.os.Looper.loop(Looper.java:344)
       at android.app.ActivityThread.main(ActivityThread.java:8204)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:589)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1071)
Caused by android.view.InflateException: Binary XML file line #16 in in.callific.quickinsure:layout/activity_home_screen_v2: Binary XML file line #580 in in.callific.quickinsure:layout/content_home_screen_activity_v2: Error inflating class TextView


Caused by android.view.InflateException: Binary XML file line #580 in in.callific.quickinsure:layout/content_home_screen_activity_v2: Error inflating class TextView


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


Caused by android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f0802ba
       at android.content.res.ResourcesImpl.getResourceName(ResourcesImpl.java:296)
       at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:895)
       at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:735)
       at android.content.res.Resources.loadDrawable(Resources.java:1012)
       at android.content.res.TypedArray.getDrawableForDensity(TypedArray.java:1007)
       at android.content.res.TypedArray.getDrawable(TypedArray.java:982)
       at android.view.View.<init>(View.java:5559)
       at android.widget.TextView.<init>(TextView.java:1054)
       at android.widget.TextView.<init>(TextView.java:1048)
       at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:108)
       at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:103)
       at androidx.appcompat.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:201)
       at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:121)
       at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1569)
       at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1620)
       at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1071)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1001)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1144)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1105)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1147)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1105)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1147)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1105)
       at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1284)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1140)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1105)
       at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1284)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1140)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1105)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:686)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:538)
       at in.callific.quickinsure.databinding.ActivityHomeScreenV2Binding.inflate(ActivityHomeScreenV2Binding.java:59)
       at in.callific.quickinsure.databinding.ActivityHomeScreenV2Binding.inflate(ActivityHomeScreenV2Binding.java:53)
       at in.callific.quickinsure.activity.HomeScreenActivity.onCreate(HomeScreenActivity.kt:174)
       at in.callific.quickinsure.activity.HomeScreenActivityV2.onCreate(HomeScreenActivityV2.kt:83)
       at android.app.Activity.performCreate(Activity.java:8130)
       at android.app.Activity.performCreate(Activity.java:8110)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1343)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3782)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3975)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2377)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:233)
       at android.os.Looper.loop(Looper.java:344)
       at android.app.ActivityThread.main(ActivityThread.java:8204)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:589)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1071)

当此项目中的其他可绘制对象出现类似异常时,我转为对这些图像使用矢量可绘制对象,但此可绘制对象是 9 补丁图像,无法转换为矢量图像。

【问题讨论】:

  • 我的猜测是您正在测试应用程序的设备与您定义的任何可绘制文件夹都不匹配。将可绘制对象的副本放置在默认文件夹“res/drawable/tab_white_left_9.9.png”中,以查看错误是否消失。
  • 另外,你确定你已经为错误确定了正确的可绘制对象吗?
  • 我确定这是此错误的可绘制对象,因为引发 InflationException 的文本视图只有此作为背景,没有其他与之关联的可绘制对象。

标签: android android-layout layout-inflater nine-patch inflate-exception


【解决方案1】:

兄弟,你的可绘制名称是

tab_white_left_9.9

但你已经过去了

tab_white_left_9

如我所见

android:background="@drawable/tab_white_left_9"

改变这个,也不要在名字中使用点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    相关资源
    最近更新 更多