AndroidStudio 3.0/Android Gradle plugin 3.0
<vector>
<path Android:fillColor="@color/image_button_disabled"/>
</vector>
Ottengo questo errore:
i riferimenti ad altre risorse non sono supportati dalla generazione di PNG in fase di compilazione
Sarà possibile risolverlo o si tratta di una soluzione deprecata?
Nella tua app build.gradle
aggiungi la seguente riga:
defaultConfig{
vectorDrawables.useSupportLibrary = true
}
Vedi Sviluppatori Android: Soluzione di compatibilità con versioni precedenti di Vector Drawables per i dettagli.
è necessario utilizzare il codice esadecimale direttamente non riferendosi a una risorsa.
<vector
<path
Android:fillColor="#FFF"/></vector>
Un po 'più di contesto per questo errore:
Per la libreria di supporto, aggiungi una dichiarazione al tuo file build.gradle:
Android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
dependencies {
compile 'com.Android.support:appcompat-v7:23.2.0'
}
Se la tua minSdkVersion è 21 puoi disabilitare la generazione di PNG aggiungendo questa linea:
// set to an empty list to disable the feature
vectorDrawables.generatedDensities = []
La rimozione di questa linea genererà comunque i PNG.
Non usare colorReference all'attributo fillColor in Vector drawable usa il codice hex
usare così
<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"/>
Sono stato in grado di aggirare questo facendo quanto segue:
In questo modo il compilatore funzionerà
Per aggiungere fino a @ mwa91answer .
Nel caso in cui hai bisogno di un disegno dinamico di drawable, ma non hai tempo per aggiornare i tuoi layout e andare con @ mwa91answer e modificare tutti gli attributi Android:src="@drawable/..."
su app:srcCompat="@drawable/..."
, puoi sempre usare il valore del colore esadecimale disegnabile e quindi tinta il drawable in ImageView:
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/your_drawable"
Android:tint="@color/image_button_disabled"
/>
Penso che tu stia usando Android:fillColor="@color/image_button_disabled"
questo codice per il vettore drawable.
// 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>
Non è supportato.
Sostituiscilo con Android:fillColor="#c4ca5e"