异常android.content.res.Resources$NotFoundException:可提取资源ID#0x



我使用tabLayout作为

<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayoutSubscriptionDays"
style="@style/CustomTabLayoutTextSizeSix"
android:layout_width="match_parent"
android:layout_height="@dimen/_40sdp"
android:background="@color/white"
app:tabBackground="@color/selector_tab_blue_white"
app:tabIndicatorColor="@color/transparent"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/white"
app:tabTextColor="@color/black" />

在一些设备中,我遇到了异常,比如:android.content.res.Resources$NotFoundException:文件res/color/selector_tab_blue_white.xml来自可提取资源ID#0x7f0601d8

这是我的选择器,它在颜色目录中:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/blue_4880ff" android:state_selected="true" />
<item android:color="@color/white" />
</selector>

我已经尝试了很多解决方案,比如:

defaultConfig {
vectorDrawables.useSupportLibrary = true
}
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)

我尝试过这些解决方案。

如果有人能帮忙,那就太好了。感谢

app:tabBackground属性需要引用,这意味着它必须指向可提取资源。

<!-- Reference to a background to be applied to tabs. -->
<attr format="reference" name="tabBackground"/>

您将希望创建一个具有引用所需颜色(在本例中为color/selector_tab_blue_white.xml(的形状的绘图。

例如,drawable/selector_tab_blue_white_background.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/selector_tab_blue_white" />
</shape>

在布局xml中,将app:tabBackground引用属性更改为:

app:tabBackground="@drawable/selector_tab_blue_white_background"

即使当所需的颜色color/selector_tab_blue_white.xml是颜色选择器时,这对我来说也是有效的。

您必须将可绘制文件与可绘制文件夹一起添加到两个文件夹中:

drawable
drawable-v24

这样它就不会在任何设备上崩溃。

希望这能帮助

请按照以下步骤解决此问题

  1. 首先检查该文件是否存在于项目中
  2. 现在同步你的成绩
  3. 点击清洁项目
  4. 单击"重建"项目
  5. 使缓存无效/重新启动
  6. 重新运行项目

在TabLayout 的声明样式中

<attr format="reference" name="tabBackground"/>

因此,在您的情况下,修改以下

<item android:color="@color/blue_4880ff" android:state_selected="true" /> <item android:color="@color/white" />

进入

<item android:drawable="@color/blue_4880ff" android:state_selected="true" /> <item android:drawable="@color/white" />

相关内容

  • 没有找到相关文章

最新更新