Plugin AndroidStudio 3.0 / Android Gradle 3.0
<vector>
<path android:fillColor="@color/image_button_disabled"/>
</vector>
J'obtiens cette erreur:
les références à d'autres ressources ne sont pas prises en charge par la génération PNG au moment de la construction
Sera-t-il possible de le résoudre ou s'agit-il d'une solution obsolète?
Réponses:
Pour prendre en charge le SDK API <24, ajoutez la ligne suivante à votre application
build.gradle
:Si votre minSdkVersion est de 24 ou plus, votre problème sera résolu de lui-même, car VectorDrawables a une prise en charge complète à partir de cette API.
Voir Développeurs Android: Solution de compatibilité descendante Vector Drawables pour plus de détails.
la source
vous devez utiliser le code hexadécimal directement sans faire référence à une ressource.
la source
vectorDrawables.useSupportLibrary = true
à votrebuild.gradle
.Un peu plus de contexte pour cette erreur:
Pour la bibliothèque de support, ajoutez une instruction à votre fichier build.gradle:
la source
fillType
estnonZero
mais il ne diffèreevenOdd
dans certains cas: w3.org/TR/SVG/painting.html#FillRulePropertyN'utilisez pas colorReference à l'attribut fillColor dans Vector drawable, utilisez simplement le code hexa
utiliser comme ça
au lieu de cela
la source
Si votre minSdkVersion est de 21, vous pouvez désactiver la génération de PNG en ajoutant cette ligne:
La suppression de cette ligne générera toujours les PNG.
Source: http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html
la source
J'ai pu contourner ce problème en procédant comme suit:
De cette façon, le compilateur fonctionnera
la source
Je pense que vous utilisez
android:fillColor="@color/image_button_disabled"
ce code pour dessiner des vecteurs.Ce n'est pas pris en charge.
Remplacez-le simplement par
android:fillColor="#c4ca5e"
la source
Pour ajouter jusqu'à @ mwa91 answer .
Si vous avez besoin d'une thématisation dynamique de drawable, mais que vous n'avez pas le temps de mettre à jour vos mises en page et d'utiliser @ mwa91 answer et de changer tous les
android:src="@drawable/..."
attributs enapp:srcCompat="@drawable/..."
, vous pouvez toujours utiliser la valeur de couleur hexadécimale dans drawable, puis teinter plus tard le drawable dans ImageView:la source