これに対して表示されるエラーメッセージは次のとおりです。
org.xmlpull.v1.XmlPullParserException: Binary XML file line #18: <item> tag requires a 'drawable' attribute or child tag defining a drawable
少し調べてみると、仕様では、background
属性が色または描画可能なリソースへの参照をサポートする必要があると書かれています。
...参照しているリソースを見ると、StateListDrawable
.
platforms/android-17/data/res/color/primary_text_dark.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="@android:color/bright_foreground_dark_disabled"/>
<item android:state_window_focused="false" android:color="@android:color/bright_foreground_dark"/>
<item android:state_pressed="true" android:color="@android:color/bright_foreground_dark_inverse"/>
<item android:state_selected="true" android:color="@android:color/bright_foreground_dark_inverse"/>
<item android:state_activated="true" android:color="@android:color/bright_foreground_dark_inverse"/>
<item android:color="@android:color/bright_foreground_dark"/> <!-- not selected -->
</selector>
ただし、 StateListDrawable のドキュメントでは、要素drawable
に対して属性を定義する必要があることも明示的に述べています。item
https://developer.android.com/guide/topics/resources/drawable-resource.html
<item>
Defines a drawable to use during certain states, as described by its attributes. Must be a child of a <selector> element.
attributes:
android:drawable
Drawable resource. Required. Reference to a drawable resource.
... の場合には当てはまりませんprimary_text_dark.xml
。したがって、参照しているドローアブルが仕様に準拠していないように見えるため、機能していません。
primary_text_dark
回避策は、デフォルトの状態で使用されている色を参照することだと思います: bright_foreground_dark
。それは公開されていないので、それが参照しているものに直接アクセスする必要があります。
android:background="@android:color/background_light"