Я создаю приложение Android и пытаюсь применить пользовательские темы и хочу использовать некоторые пользовательские атрибуты.
Я определил атрибуты в attrs.xml
как например:
<resources>
<attr name="baseColor" format="reference" />
<attr name="accentColor" format="reference" />
</resources>
и в моем styles.xml
я добавил следующие значения в свою тему:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="android:textColor">@android:color/black</item>
<item name="android:windowNoTitle">true</item>
<item name="colorAccent">@color/blue_color</item>
<item name="android:colorPrimaryDark" tools:targetApi="lollipop">@color/blue_color</item>
<item name="baseColor">@color/blue_color</item>
<item name="accentColor">@color/red_color</item>
</style>
Наконец, в моем XML макете я применяю эти атрибуты на кнопке как таковые:
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/sign_up_button"
android:background="?attr/accentColor"
android:textColor="?attr/baseColor"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="@string/sign_up_button" />
Однако, когда я запускаю мое приложение, оно вылетает с java.lang.UnsupportedOperationException: Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x7f040046 a=-1}
, что, конечно, означает, что мой пользовательский атрибут не был найден. Я что-то упустил? Я уже определил цвета и атрибуты в своей теме и применил эту тему к своей деятельности в моем манифесте. Полная трассировка стека может быть найдена здесь