【发布时间】:2015-09-22 07:49:28
【问题描述】:
我正在尝试在 gradle 项目中使用我的 aar-library(一个 maven 项目,使用 Jayway 的 android-maven-plugin 构建)但是,当我运行gradle assembleDebug,出现以下异常:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/actions/ItemListIntents;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
如果我在项目中搜索该类,Android Studio 会找到两个结果:
ListItemIntents (com.google.android.gms.action) play-services-base-7.0.0(classes.jar)ListItemIntents (com.google.android.gms.action) aar-library(classes.jar)
运行检查
gradle dependencyInsight --dependency play-services-base --configuration compile我明白了:
com.google.android.gms:play-services-base:7.0.0
+--- com.google.android.gms:play-services-gcm:7.0.0
| \--- aar-library:core:1.0.10-SNAPSHOT
| \--- compile
+--- com.google.android.gms:play-services-location:7.0.0
| \--- com.nexse.mobile.betting.core:core:1.0.10-SNAPSHOT (*)
\--- com.google.android.gms:play-services-maps:7.0.0
\--- com.google.android.gms:play-services-location:7.0.0 (*)
(*) - dependencies omitted (listed previously)
问题出在 aar-library classes.jar: ListIntentIntents(很明显,整个 play-services-base 模块)已经存在!所以里面
my-gradle-project/app/build/intermediates/exploded-aar/
我有两个play-services-base模块的引用:一个在com.google.android.gms文件夹下,一个在aar-library文件夹下
我该怎么办?
【问题讨论】:
标签: java android maven gradle aar