web-dev-qa-db-fra.com

La modification des attributs de style des composants de matériau échoue

J'essaye de changer les attributs de style de Thème des composants matériels (comme colorPrimaryVariant, colorOnSecondary et ainsi de suite) mais j'obtiens l'erreur suivante:

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.

Voici à quoi ressemble mon thème:

<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>

Si je n'ajoute pas les quatre attributs affectés, tout fonctionne bien. Mon minSdkVersion est 16, compileSdkVersion et targetSdkVersion sont 28. J'ai également essayé d'utiliser les thèmes Bridge mais j'obtiens la même erreur. J'ai revérifié mes dépendances et tout semble correct. Qu'est-ce que je rate?

17
Makru

Il semble que 1.1. (actuellement en alpha) ait résolu ce problème:

implementation 'com.google.Android.material:material:1.1.0-alpha09'
23
and_dev

Je viens de vérifier la documentation et les articles que vous avez utilisés. Il semble qu'il ne soit toujours pas ajouté au Theme.MaterialComponents ni cela ne fonctionne pas avec ce thème.

(a obtenu l'erreur Not found (en utilisant Theme.MaterialComponents) aussi)

La partie intéressante est, je pense que cela devrait fonctionner avec parent="Theme.AppCompat" puisqu'ils ont dit que c'est pour le test de voir comment ça marche:

Vous pouvez également tester de manière incrémentielle les nouveaux composants Material sans changer le thème de votre application . Cela vous permet de conserver l'apparence et le comportement de vos mises en page existantes, tout en introduisant de nouveaux composants dans votre mise en page un par un.

Lire: Thèmes AppCompat

2
ʍѳђઽ૯ท