Answers:
要支持<24的API SDK,请将以下行添加到您的应用中build.gradle
:
defaultConfig{
vectorDrawables.useSupportLibrary = true
}
如果您的minSdkVersion为24或更高,那么您的问题将自行解决,因为从此API开始,VectorDrawables都具有完全支持。
有关详细信息,请参见Android开发者:Vector Drawables向后兼容解决方案。
您需要直接使用十六进制代码而不引用资源。
<vector
<path
android:fillColor="#FFF"/></vector>
vectorDrawables.useSupportLibrary = true
到您的中build.gradle
。
此错误的更多上下文:
对于支持库,在您的build.gradle文件中添加一条语句:
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.2.0'
}
不要在Vector drawable的fillColor属性中使用colorReference,而仅使用六进制代码
这样使用
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#1abc9c"
android:pathData="M9,11L7,11v2h2v-2zM13,11h-2v2h2v-2zM17,11h-2v2h2v-2zM19,4h-1L18,2h-2v2L8,4L8,2L6,2v2L5,4c-1.11,0 -1.99,0.9 -1.99,2L3,20c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.9,-2 -2,-2zM19,20L5,20L5,9h14v11z"/>
代替这个
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/colorPrimary"
android:pathData="M9,11L7,11v2h2v-2zM13,11h-2v2h2v-2zM17,11h-2v2h2v-2zM19,4h-1L18,2h-2v2L8,4L8,2L6,2v2L5,4c-1.11,0 -1.99,0.9 -1.99,2L3,20c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.9,-2 -2,-2zM19,20L5,20L5,9h14v11z"/>
如果您的minSdkVersion是21,则可以通过添加以下行来禁用PNG的生成:
// set to an empty list to disable the feature
vectorDrawables.generatedDensities = []
删除此行仍会生成PNG。
来源:http : //google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html
通过执行以下操作,我已经能够解决此问题:
这样编译器将工作
我认为您正在使用android:fillColor="@color/image_button_disabled"
此代码进行矢量可绘制。
// image_button_disabled.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/circular_image_color_pressed" android:state_pressed="true" />
<item android:color="@color/circular_image_color_normal" />
</selector>
不支持。
只需将其替换为 android:fillColor="#c4ca5e"
如果您需要动态绘制drawable的主题,但又没有时间更新布局并使用@ mwa91 answer并将所有android:src="@drawable/..."
属性更改为app:srcCompat="@drawable/..."
,则可以始终在drawable中使用十六进制颜色值,然后在ImageView中对drawable进行着色:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/your_drawable"
android:tint="@color/image_button_disabled"
/>