Nella mia app ho definire gli attributi di colore che ho impostato in un tema personalizzato:Android xml drawable Impossibile convertire ad eccezione del colore per API 10
res/valori/attrs.xml
<resources>
<attr name="bbColorPrimary" format="color|reference" />
</resources>
res /values/colors.xml
<resources>
<color name="white">#ffffff</color>
</resources>
ris/valori/style.xml
<style name="MyStyle" parent="@style/Theme.AppCompat.NoActionBar">
<item name="bbColorPrimary">@color/white</item>
</style>
res/drawable/background.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true">
<shape>
<solid android:color="?attr/bbColorPrimary" />
</shape>
</item>
<item>
<shape>
<solid android:color="@color/transparent" />
</shape>
</item>
</selector>
res/drawable/background.xml
è impostato come sfondo di alcuni pulsante. Arresto anomalo dell'applicazione durante il gonfiaggio del file res/drawable/background.xml
, con la seguente eccezione:
...
Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
at android.content.res.TypedArray.getColor(TypedArray.java:326)
at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:748)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:172)
....
Si lavora su livelli di API maggiori di 10. Se rimuovo il ?attr/bbColorPrimary
che funziona bene, anche se molti altri ?attr/..
chiamate si trovano in altri file di risorse . Non sto usando nessuna cartella di risorse specifica per la versione.
Cosa sto facendo di sbagliato qui?
Anche con API = 16 Ho un incidente, API => 21 sono bene comunque. – Ruocco
@Omcira grazie per averlo menzionato. Posso confermare anche con API = 15. –
Anche con API 17, penso che il suo arresto anomalo in <21, perché nel mio dispositivo lecca-lecca funziona bene. –