web-dev-qa-db-ja.com

エラー:Androidで2つのライブラリプロジェクトを使用する場合、属性「***」はすでに定義されています

私はAndroid-support-v7-appcompatを私のAndroidプロジェクトのライブラリとして使用しています。今、actionbarsherlockを別のものとして追加したいと思います。ライブラリプロジェクト。2つ目のライブラリを追加すると、以下のような多くのエラーが発生します。

Android-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined

1つの属性値とそれに関連するコードスニペットを変更することで、私が試した1つのソリューションです。しかし、上記のように80行近くになると、面倒になります。この問題を解決する方法は他にありますか?

19
AnujAroshA

この問題を解決する正しい方法は、Androidサポートライブラリをすべての関連プロジェクトとライブラリプロジェクトで更新することです。私の場合、Androidサポートライブラリとまた、私のアプリケーションを実装するライブラリプロジェクトの1つです。両方のライブラリを更新すると、問題は解決しました。更新方法Androidサポートライブラリは、

  • プロジェクトを右クリック
  • ポップアップウィンドウからAndroid Toolsを選択します
  • Add Support Libraryを選択します
9
AnujAroshA

Properties => Androidからappcompatサポートライブラリプロジェクトを削除します

3
HimalayanCoder

Gradle Resource Mergerは、すべての依存関係のすべてのリソースフォルダーをマージし、単一のフォルダーに配置します。重複がある場合、ビルドプロセスは失敗します。

幸いにも、以下の[出力:ラベル]を見ると、問題への正しいパスが見つかります。

ここに例があります

enter image description here

あなたの場合はAndroid-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined

コマンドラインからプロジェクトをビルドして、正しいパスを取得することもできます。 attributeName Inside values\attrs.xmlファイルの476行目で、 "attributeName"という名前のプロパティを持つを見つけます。ほとんどの場合、重複を取り除くために変更する必要があるのは、独自のスタイル設定です。

したがって、理由がわかったら、プロジェクトモジュールでそのプロパティを見つけて、別の名前に置き換えることができます。

3
dmSherazi

プロジェクトからappcompactを削除し、スタイルを

<style name="AppBaseTheme" parent="Theme.Sherlock">
1
Penzzz

ビルドツールのバージョンを更新して再同期しましたが、問題なく動作しました。

0
Amit Garg