Android 矢量资产给定错误“;currentColor";当我创造

Android 矢量资产给定错误“;currentColor";当我创造,android,xml,svg,font-awesome,Android,Xml,Svg,Font Awesome,我从font awesome下载了一个svg图标,用于android中的一个应用程序,当我创建一个向量资产时,我导入了我的svg,但是当我试图编译它时,会出现以下错误 错误:“currentColor”与属性fillColor(attr)不兼容 颜色 我试图直接更改fillcolor,但当我编译应用程序时,这会重新生成xml并再次使用“当前颜色”一词 这是vector资产生成的xml <vector android:autoMirrored="true" android:height="5

我从font awesome下载了一个svg图标,用于android中的一个应用程序,当我创建一个向量资产时,我导入了我的svg,但是当我试图编译它时,会出现以下错误

错误:“currentColor”与属性fillColor(attr)不兼容 颜色

我试图直接更改fillcolor,但当我编译应用程序时,这会重新生成xml并再次使用“当前颜色”一词

这是vector资产生成的xml

<vector android:autoMirrored="true" android:height="512dp"
    android:viewportHeight="512" android:viewportWidth="448"
    android:width="448dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="currentColor" android:pathData="..."/>
</vector>


如何修复它?

我解决了这个问题,只需使用外部编辑器修改svg原始版本并再次导入即可

android:fillColor必须是颜色(当前为字符串)

更改android:fillColor=“currentColor” 要对十六进制进行着色,请执行以下操作:

android:fillColor="#00FFFF" 
或将colors.xml引用为:

android:fillColor="@colors/colorPrimary"
或其他方式(如果设置如下,颜色将根据主题而变化):


从font awesome下载的.svg文件的颜色设置为“currentColor”。创建矢量资源时,android会从原始文件导入颜色。每次android构建项目时,它都会接合以确保两个文件匹配,并替换两个文件之间的任何不一致

因此,要更改.xml资源文件中的颜色,需要更改原始文件中的颜色。这可以通过使用另一个应用程序编辑来完成。或者更简单地说,您可以在文本编辑器中打开.svg文件并进行更改


下面是从font awesome下载的.svg文件示例。要在android中将其用作矢量资源,只需将
fill=“currentColor”
更改为任何有效的十六进制颜色字符串,例如
fill=“#000000”



编辑:我做了一些额外的测试,在我更改了原始的.svg文件之后,android在构建时没有更新.xml资源文件。此外,此文件中颜色的值并不重要,因为您可以在布局文件中或动态更改它

android:fillColor="?colorPrimary"
<svg aria-hidden="true"
     focusable="false"
     data-prefix="fab"
     data-icon="font-awesome-flag"
     class="svg-inline--fa fa-font-awesome-flag fa-w-14"
     role="img" xmlns="http://www.w3.org/2000/svg"
     viewBox="0 0 448 512">

    <path fill="currentColor"
          d="M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z">
    </path>
</svg>