Исключение android .content.res.Resources $ NotFoundException: файл res / color / selector_tab_blue_white. xml из ресурса с идентификатором # 0x7f0601d8 - PullRequest
0 голосов
/ 07 мая 2020

Я использую 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)

Эти решения, которые я пробовал.

Если кто может помочь, то это будет так хорошо. Спасибо

Ответы [ 3 ]

0 голосов
/ 07 мая 2020

Выполните следующие действия, чтобы решить эту проблему ..

  1. сначала проверьте, присутствует ли этот файл в проекте
  2. сейчас синхронизируйте c ваш gradle
  3. Нажмите на чистый проект
  4. Нажмите на Rebuild project
  5. Invalidate Caches / Restart
  6. Повторно запустить проект
0 голосов
/ 22 мая 2020

Атрибут 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 является селектором цвета.

0 голосов
/ 07 мая 2020

Вы должны добавить этот файл с возможностью рисования в 2 папки вместе с папкой с возможностью рисования:

drawable
drawable-v24

Тогда он не будет sh на любом устройстве.

Надеюсь, это поможет

...