AndroidStudio 3.0 / Android Gradle Plugin 3.0
<vector>
<path android:fillColor="@color/image_button_disabled"/>
</vector>
Ich erhalte diesen Fehler:
Verweise auf andere Ressourcen werden von der PNG-Generierung zur Build-Zeit nicht unterstützt
Wird es möglich sein, das Problem zu beheben, oder handelt es sich um eine veraltete Lösung?
android
resources
android-studio-3.0
langme
quelle
quelle
Antworten:
Fügen Sie Ihrer App die folgende Zeile hinzu, um API SDK <24 zu unterstützen
build.gradle
:Wenn Ihre minSdkVersion 24 oder höher ist, wird Ihr Problem von selbst behoben, da VectorDrawables ab dieser API die volle Unterstützung bietet.
Weitere Informationen finden Sie unter Abwärtskompatibilitätslösung für Android-Entwickler: Vector Drawables .
quelle
Sie müssen den Hex-Code direkt verwenden, der sich nicht auf eine Ressource bezieht.
quelle
vectorDrawables.useSupportLibrary = true
zu Ihrer hinzufügen könnenbuild.gradle
.Etwas mehr Kontext für diesen Fehler:
Fügen Sie für die Support-Bibliothek eine Anweisung zu Ihrer build.gradle-Datei hinzu:
quelle
fillType
istnonZero
, unterscheidet sich jedoch nurevenOdd
in bestimmten Fällen von: w3.org/TR/SVG/painting.html#FillRulePropertyVerwenden Sie colorReference nicht beim fillColor-Attribut in Vector drawable, sondern verwenden Sie nur Hexa-Code
benutze so
an Stelle von
quelle
Wenn Ihre minSdkVersion 21 ist, können Sie die Erzeugung von PNG deaktivieren, indem Sie diese Zeile hinzufügen:
Durch Entfernen dieser Zeile werden weiterhin die PNGs generiert.
Quelle: http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html
quelle
Ich konnte dies umgehen, indem ich Folgendes tat:
Auf diese Weise funktioniert der Compiler
quelle
Ich denke, Sie verwenden
android:fillColor="@color/image_button_disabled"
diesen Code für Vektor zeichnbar.Es wird nicht unterstützt.
Ersetzen Sie es einfach durch
android:fillColor="#c4ca5e"
quelle
Um @ mwa91 Antwort zu addieren .
Wenn Sie ein dynamisches Theming für Drawable benötigen, aber keine Zeit haben, Ihre Layouts zu aktualisieren und mit @ mwa91 zu antworten und alle
android:src="@drawable/..."
Attribute in zu ändernapp:srcCompat="@drawable/..."
, können Sie in Drawable immer den Hex-Farbwert verwenden und das Drawable später in ImageView tönen:quelle