android.content.res.Resources$NotFoundException Файл res/drawable/$my_app_img__0.xml из идентификатора ресурса списка состояний цветов #0x7f07000a
Я имею ImageView
с app:srcCompat="@drawable/my_app_img"
Я получил:
android.content.res.Resources $ NotFoundException Файл res/drawable/$my_app_img__0.xml из идентификатора ресурса списка состояний цветов #0x7f07000a
на Android 6 и не получить его на 8 и выше.
Здесь my_app_img.xml
:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
xmlns:tools="http://schemas.android.com/tools"
android:width="73dp"
android:height="103dp"
android:viewportWidth="73"
android:viewportHeight="103">
<path
android:fillAlpha="0"
android:fillColor="#000000"
android:pathData="M0,0l72.299,0l0,103l-72.299,0z" />
<path android:pathData="M70.379,96.761L40.602,56.464L25.724,77.276C22.268,82.111 22.324,88.62 25.864,93.394L28.417,96.839C31.291,100.714 35.832,103 40.659,103H67.227C70.442,103 72.288,99.345 70.379,96.761Z">
<aapt:attr name="android:fillColor">
<gradient
android:endColor="#FF094EC2"
android:endX="31.7222"
android:endY="68.3161"
android:startColor="#FF005AF4"
android:startX="57.4428"
android:startY="104.487"
android:type="linear"
tools:targetApi="n" />
</aapt:attr>
</path>
<path android:pathData="M68.592,0H38.75C36.254,0 33.907,1.188 32.431,3.199L2.949,43.369C-0.919,48.64 -0.988,55.79 2.778,61.134L19.001,84.156C19.001,80.833 20.044,77.594 21.984,74.895L71.598,5.853C73.355,3.407 71.606,0 68.592,0Z">
<aapt:attr name="android:fillColor">
<gradient
android:endColor="#FF29EEFD"
android:endX="32.6558"
android:endY="31.6712"
android:startColor="#FF2EB3ED"
android:startX="6.53102"
android:startY="64.8591"
android:type="linear" />
</aapt:attr>
</path>
</vector>
Также я использую:
vectorDrawables.useSupportLibrary = true
3 ответа
Я думаю, что проблема связана с градиентом, присутствующим в векторе. У тебя есть<aapt:attr name="android:fillColor">
там есть набор параметров с градиентом, и, глядя в документацию, кажется, что градиенты поддерживаются только из SDK 24+
android:fillColor
Задает цвет, используемый для заливки контура. Может быть цветом или, для SDK 24+, списком состояний цвета или цветом градиента.
Вы можете попробовать без градиента и посмотреть, работает ли он.
я использовал
Я с той же проблемой. Причина, по которой я нашел это, кажется, проблема версии плагина для Android.
Ваше векторное изображение поддерживает только API 24 или выше. В версии 3.2.x или ниже я перешел с устройства на файл PNG в API 24. Однако в 3.3.x произошел сбой в этой части.
Вы используете 3.3.x?
Если это так, вы можете использовать. Используете ли вы 3.2.x или ниже, или это хорошо работает с AndroidX.
В качестве альтернативы вы можете использовать Вектор только в API версии 24 или выше или использовать файл PNG в более низких версиях.
Я еще не нашел лучшего способа.
Надеюсь, это поможет.