6

ImageViewapp:srcCompat="@drawable/my_app_img"

我得到:

android.content.res.Resources$NotFoundException 文件 res/drawable/$my_app_img__0.xml 来自颜色状态列表资源 ID #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
4

3 回答 3

15

我认为这个问题与矢量可绘制对象中存在的渐变有关。您在<aapt:attr name="android:fillColor">那里设置了带有渐变的参数,并且通过查看文档,似乎仅 SDK 24+ 支持渐变

安卓矢量可绘制

android:fillColor

指定用于填充路径的颜色。可以是一种颜色,对于 SDK 24+,可以是颜色状态列表或渐变颜色

您可以尝试不使用渐变,看看它是否有效。

于 2020-03-02T14:46:07.363 回答
0

我有同样的问题。我发现它的原因似乎是android 级插件版本的问题。

您的矢量图像仅支持 API 24 或更高版本。在 3.2.x 或更低版本下,我在 API 24 下从设备更改为 PNG 文件。但是,从 3.3.x 开始,该部分出现崩溃。

您使用的是3.3.x吗?

如果是这样,您可以使用 Are you using 3.2.x or below Or it works well with AndroidX

或者,您可以仅在 API 版本 24 或更高版本中使用 Vector,或在较低版本中使用 PNG 文件。

我还没有找到更好的方法。

我希望这有帮助。

于 2019-02-15T09:35:35.283 回答
0

我正在使用ImageView并替换它AppCompatImageView并修复它,以便它可以兼容 < 24

于 2021-12-16T16:25:24.693 回答