web-dev-qa-db-ja.com

互換性のない形式で既に定義されている属性(ここで定義されている元の属性)

追加後にプロジェクトをビルドできません

compile 'com.Android.support:design:24.2.0'

次のエラーが発生し続けます。

問題は、ベクタードローアブルのサポートにあるようです。どこかでいくつかの属性が2回追加されます。

たとえば、ビルドされたvalues.xmlファイルには次のものが含まれます。

<declare-styleable name="AppBarLayout_LayoutParams"><attr name="layout_scrollFlags"><flag name="scroll" value="0x1"/><flag name="exitUntilCollapsed" value="0x2"/><flag name="enterAlways" value="0x4"/><flag name="enterAlwaysCollapsed" value="0x8"/></attr><attr format="reference" name="layout_scrollInterpolator"/></declare-styleable>

そして

<declare-styleable name="AppBarLayout_Layout"><attr name="layout_scrollFlags">
        <flag name="scroll" value="0x1"/>
        <flag name="exitUntilCollapsed" value="0x2"/>
        <flag name="enterAlways" value="0x4"/> 
        <flag name="enterAlwaysCollapsed" value="0x8"/>
        <flag name="snap" value="0x10"/>

これをgradleファイルに追加しました:

compile 'com.Android.support:cardview-v7:24.2.0' + '@aar'
compile 'com.Android.support:recyclerview-v7:24.2.0' + '@aar'
compile 'com.Android.support:appcompat-v7:24.2.0'
compile 'com.Android.support:design:24.2.0'
7
Javanshir

この問題は、同じライブラリの異なるバージョンがアプリケーション内に存在する場合に発生します。この場合、異なるバージョンのサポートライブラリ。

それらがgradleファイルに表示されない場合は、依存関係として追加されている可能性があります。ターミナルで以下を実行して、各ライブラリの依存関係を確認します。

./gradlew app:dependencies

次に、古いバージョンのappcompatを使用しているライブラリを見つけて、適切なものを更新/削除します。

4
Javanshir

他のコントロールと同じプロパティ名があり、カスタムコントロールのプロパティの名前を変更します

<declare-styleable name="MyBgView">
        <attr name="textString" format="string" />
        <attr name="textSizes" format="dimension" />
        <attr name="triangleSize" format="dimension" />
        <attr name="backgrounds" format="color" />
        <attr name="textColors" format="color" />
1
Lan

AndroidSDKは拡張属性を避けられません。親の名前空間を使い果たします

<declare-styleable name="AppBarLayout_Layout" parent="AppBarLayout_LayoutParams">
    <attr name="layout_scrollFlags">
</declare-styleable>
0
Vahe Gharibyan