Изменение атрибутов стиля компонентов материала завершается неудачно - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь изменить атрибуты стиля из темы Компоненты материала (например, colorPrimaryVariant, colorOnSecondary и т. Д.), Но получаю следующую ошибку:

Android resource linking failed
Output:      C:\...\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3835: error: style attribute 'attr/colorPrimaryVariant (aka com.sample.app:attr/colorPrimaryVariant)' not found.
C:\...\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3836: error: style attribute 'attr/colorOnPrimary (aka com.sample.app:attr/colorOnPrimary)' not found.
C:\...\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3839: error: style attribute 'attr/colorSecondaryVariant (aka com.sample.app:attr/colorSecondaryVariant)' not found.
C:\...\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3840: error: style attribute 'attr/colorOnSecondary (aka com.sample.app:attr/colorOnSecondary)' not found.
error: failed linking references.

Вот как выглядит моя тема:

<resources>

    <!-- Light application theme -->
    <style name="CBTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <item name="colorPrimary">@color/cbPrimary</item>
        <item name="colorPrimaryDark">@color/cbPrimaryDark</item>
        <item name="colorPrimaryVariant">@color/cbPrimaryDark</item>
        <item name="colorOnPrimary">#FFFFFF</item>
        <item name="colorAccent">@color/cbAccent</item>
        <item name="colorSecondary">@color/cbAccent</item>
        <item name="colorSecondaryVariant">@color/cbAccentLight</item>
        <item name="colorOnSecondary">#FFFFFF</item>
        <item name="colorError">@color/cbRed</item>

        <item name="android:windowBackground">@color/lightThemeBackground1</item>
    </style>

    [...]

</resources>

Если я не добавлю четыре затронутых атрибута, все будет нормально.Мой minSdkVersion - 16, compileSdkVersion и targetSdkVersion - 28. Я также пытался использовать темы Bridge, но получаю ту же ошибку.Я дважды проверил свои зависимости, и все кажется правильным.Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Похоже, 1.1.0 (в настоящее время в альфа-версии) решил эту проблему:

implementation 'com.google.android.material:material:1.1.0-alpha05'
0 голосов
/ 04 октября 2018

Я только что проверил документацию и предметы, которые вы использовали.Кажется, что он все еще не добавлен в Theme.MaterialComponents и не работает с этой темой.

(также получил ошибку Not found (при использовании Theme.MaterialComponents))

Интересная часть, я думаю, она должна работать сparent="Theme.AppCompat" так как они сказали, что тест должен увидеть, как он работает:

Вы также можете постепенно тестировать новые компоненты материала без изменения темы вашего приложения . Это позволяет вам сохранять существующие макеты в одинаковом стиле и вести себя одинаково, добавляя новые компоненты в макет по одному.

Чтение: Темы AppCompat

...