के लिए रंग अपवाद को कनवर्ट नहीं कर सकता मेरे ऐप में मैं परिभाषित रंग विशेषताओं है कि मैं एक कस्टम थीम में सेट:एंड्रॉयड drawable एक्सएमएल एपीआई 10
res/values / attrs.xml
<resources>
<attr name="bbColorPrimary" format="color|reference" />
</resources>
रेस /values/colors.xml
<resources>
<color name="white">#ffffff</color>
</resources>
res/values / style.xml
<style name="MyStyle" parent="@style/Theme.AppCompat.NoActionBar">
<item name="bbColorPrimary">@color/white</item>
</style>
रेस/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
कुछ बटन की पृष्ठभूमि के रूप में सेट है। ऐप्लिकेशन क्रैश res/drawable/background.xml
फ़ाइल बढ़ा-चढ़ाकर, जबकि निम्न अपवादों के साथ:
...
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)
....
यह 10 से अधिक अगर मैं ?attr/bbColorPrimary
यह ठीक काम करता है, को दूर API स्तरों पर काम करता है, हालांकि कई अन्य ?attr/..
कॉल अन्य संसाधन फ़ाइलों में स्थापित कर रहे हैं । मैं किसी संस्करण-विशिष्ट संसाधन फ़ोल्डर का उपयोग नहीं कर रहा हूं।
मैं यहाँ क्या गलत कर रहा हूं?
= 16 मैं एक दुर्घटना है के लिए सच है, एपीआई => 21 यद्यपि ठीक कर रहे हैं। – Ruocco
@ ओमसीरा इसका उल्लेख करने के लिए धन्यवाद। एपीआई = 15 के साथ भी पुष्टि कर सकते हैं। –
एपीआई 17 के साथ भी, मुझे लगता है कि इसकी दुर्घटना <21 में है, क्योंकि मेरे लॉलीपॉप डिवाइस में ठीक काम करता है। –