私はアンドロイドアプリケーションを構築するために 'com.android.tools.build:gradle:0.6.+'を使用しています。Android Gradleの依存関係を管理する最良の方法
Android dexには同じバージョンの異なるバージョンのライブラリを含めることはできません。しかし、あなたが使いたいMavenの依存関係を扱うには、すでに使用しているライブラリが必要ですが、別のバージョンが必要です。 例。 はbuild.gradleファイルに次のようた:
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile 'com.github.chrisbanes.bitmapcache:library:2.3'
}
はエラーを生成します。
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/FragmentManager$OnBackStackChangedListener;
at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
at com.android.dx.dex.file.DexFile.add(DexFile.java:163)...
このエラーは、次の理由で起こる: http://search.maven.org/remotecontent?filepath=com/github/chrisbanes/bitmapcache/library/2.3/library-2.3.pomはcom.google.android:support-v4
が必要ですcom.android.support:appcompat-v7:+にはすでにcom.google.android:support-v4が含まれているため、同じクラスファイルを二重に含むことになります。
私は今のような答えを探しています:「LIBS」フォルダにすべての依存関係をダウンロードして、使用 使用のAnt コンパイルしたファイル(「...」) など
変更包含注文オスロにはありません助けて。
私は堅牢で便利なソリューションを探しています。どのようにmavenの依存関係を使用して上記の例外から解放されますか?アイデア?どのように成熟したアンドロイドの開発者はこれを管理する?
私は正しくあなたを理解していると、問題をBaven in Mavenリポジトリとし、Maven POMを修正することで問題が解決されると考えていますか? –
@ xp-vit - 特定のバージョンを必要とするPOMの問題です。 – ianhanniballake