私は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行近くになると、面倒になります。この問題を解決する方法は他にありますか?
この問題を解決する正しい方法は、Androidサポートライブラリをすべての関連プロジェクトとライブラリプロジェクトで更新することです。私の場合、Androidサポートライブラリとまた、私のアプリケーションを実装するライブラリプロジェクトの1つです。両方のライブラリを更新すると、問題は解決しました。更新方法Androidサポートライブラリは、
Properties => Androidからappcompatサポートライブラリプロジェクトを削除します
Gradle Resource Mergerは、すべての依存関係のすべてのリソースフォルダーをマージし、単一のフォルダーに配置します。重複がある場合、ビルドプロセスは失敗します。
幸いにも、以下の[出力:ラベル]を見ると、問題への正しいパスが見つかります。
ここに例があります
あなたの場合はAndroid-support-v7-appcompat\res\values\attrs.xml:476: error: Attribute "attributeName" has already been defined
コマンドラインからプロジェクトをビルドして、正しいパスを取得することもできます。 attributeName Inside values\attrs.xml
ファイルの476行目で、 "attributeName"という名前のプロパティを持つを見つけます。ほとんどの場合、重複を取り除くために変更する必要があるのは、独自のスタイル設定です。
したがって、理由がわかったら、プロジェクトモジュールでそのプロパティを見つけて、別の名前に置き換えることができます。
プロジェクトからappcompactを削除し、スタイルを
<style name="AppBaseTheme" parent="Theme.Sherlock">
ビルドツールのバージョンを更新して再同期しましたが、問題なく動作しました。