回答:
API SDK <24をサポートするには、次の行をアプリに追加しますbuild.gradle
。
defaultConfig{
vectorDrawables.useSupportLibrary = true
}
minSdkVersionが24以上の場合、VectorDrawableはこのAPIから完全にサポートされているため、問題は自動的に解決されます。
詳細については、Androidデベロッパー:ベクタードローアブルの下位互換性ソリューションをご覧ください。
リソースを参照せずに16進コードを直接使用する必要があります。
<vector
<path
android:fillColor="#FFF"/></vector>
vectorDrawables.useSupportLibrary = true
しますが、「正しい」答えはに追加する@ mwa91の答えbuild.gradle
です。
このエラーのもう少しコンテキスト:
サポートライブラリの場合は、build.gradleファイルにステートメントを追加します。
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.2.0'
}
ベクタードローアブルの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"
@ mwa91までの 回答を追加します。
ドローアブルの動的なテーマ設定が必要であるが、レイアウトを更新して@ mwa91の 回答ですべてのandroid:src="@drawable/..."
属性をapp:srcCompat="@drawable/..."
に変更する時間がない場合は、ドローアブルで常に16進数の色の値を使用し、後でImageViewでドローアブルに色を付けることができます。
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/your_drawable"
android:tint="@color/image_button_disabled"
/>