web-dev-qa-db-ja.com

材料コンポーネントのスタイル属性の変更が失敗する

スタイル属性を Material Components ThemecolorPrimaryVariantcolorOnSecondaryなど)から変更しようとしていますが、次のエラーが表示されます。

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>

影響を受ける4つの属性を追加しない場合、すべて正常に機能します。私のminSdkVersionは16です。compileSdkVersionとtargetSdkVersionは28です。Bridgeテーマも使用しようとしましたが、同じエラーが発生します。依存関係を再確認したところ、すべてが正しいようです。私は何が欠けていますか?

17
Makru

1.1.(現在はアルファ版)がこの問題を解決したようです:

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

ドキュメント と使用したアイテムを確認しました。 Theme.MaterialComponentsにまだ追加されておらず、そのテーマでも機能しないようです。

(([Theme.MaterialComponents]を使用して)エラーが見つかりません)

興味深いのは、テストがどのように機能するかをテストするためだと彼らが言ったので、parent="Theme.AppCompat"で動作するはずだと思うことです。

また、アプリのテーマを変更せずに、test新しいマテリアルコンポーネントを追加できますこれにより、既存のレイアウトの外観と動作を維持しながら、レイアウトに新しいコンポーネントを1つずつ導入できます。

Read:AppCompat Themes

2
ʍѳђઽ૯ท