我正在使用'com.android.tools.build:gradle:0.6.+'來構建我的android應用程序。管理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,結果包含了相同的類文件。
現在我在尋找答案,如: 使用Ant 下載所有的依賴到「庫」文件夾,並使用編譯文件(「...」) 等
變化納入爲了奧斯陸不幫幫我。
我正在尋找強大和方便的解決方案。如何使用maven依賴關係,仍然沒有上述異常?想法? android開發人員如何管理這個?
所以,如果我正確地理解你,你認爲在Maven存儲庫中描述的問題是一個Bug,修復maven POM將解決這個問題? –
@ xp-vit - 這是POM需要特定版本的問題,是的。 – ianhanniballake