wake-up-neo.net

Das Ändern der Stilattribute für Materialkomponenten schlägt fehl

Ich versuche, die Stilattribute aus dem Material Components Theme (wie colorPrimaryVariant, colorOnSecondary und so weiter) zu ändern, aber ich erhalte die folgende Fehlermeldung:

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.

So sieht mein Thema aus:

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

Wenn ich die vier betroffenen Attribute nicht hinzufüge, funktioniert alles einwandfrei. Meine minSdkVersion ist 16, compileSdkVersion und targetSdkVersion sind 28. Ich habe auch versucht, die Bridge-Themes zu verwenden, erhalte aber den gleichen Fehler. Ich habe meine Abhängigkeiten überprüft und alles scheint korrekt zu sein. Was vermisse ich?

17
Makru

Es sieht so aus, als ob 1.1. (derzeit in Alpha) dieses Problem behoben hat:

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

Ich habe gerade die Dokumentation und die Gegenstände überprüft, die Sie verwendet haben. Es scheint, dass es dem Theme.MaterialComponents Noch nicht hinzugefügt wurde, und dass es mit diesem Thema nicht funktioniert.

(hat auch den Fehler Nicht gefunden erhalten (mit Theme.MaterialComponents))

Der interessante Teil ist, ich glaube, es sollte mit parent="Theme.AppCompat" Funktionieren, da sie sagten, es ist für den Test, um zu sehen, wie es funktioniert:

Sie können auch inkrementell test ​​neue Materialkomponenten ohne das App-Design zu ändern. Auf diese Weise können Sie Ihre vorhandenen Layouts unverändert lassen und gleichzeitig nacheinander neue Komponenten in Ihr Layout einfügen.

Read:AppCompat Themes

2
ʍѳђઽ૯ท