19

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

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

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

4

5 に答える 5

9

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

  • プロジェクトを右クリック
  • ポップアップ ウィンドウから[ Android ツール]を選択します。
  • [サポート ライブラリの追加] を選択します
于 2014-01-29T08:55:14.077 に答える
3

[プロパティ] = > [ Android ] から appcompact サポート ライブラリ プロジェクトを削除します。

于 2014-09-21T07:06:58.613 に答える
3

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

幸いなことに、以下の Output: ラベルの下を見ると、問題への正しいパスが見つかります。

ここに例があります

ここに画像の説明を入力

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

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

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

于 2015-07-14T13:37:46.030 に答える
1

プロジェクトからappcompactを削除し、スタイルを次のように変更することでこれを解決しました

<style name="AppBaseTheme" parent="Theme.Sherlock">
于 2014-04-30T10:47:44.520 に答える
0

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

于 2017-02-08T21:06:48.603 に答える