Sto cercando di usare il mio AAR-libreria (un progetto Maven, costruito con la android-maven-plugin da Jayway) in un progetto Gradle ma, quando corro gradle assembleDebug
, sto avendo la seguente eccezione:Gradle Android Eccezione: "Più file DEX definiscono", le classi duplicato sotto esplosa-AAR
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)
Se cerco quella classe nel mio progetto, Android Studio trova due risultati:
ListItemIntents (com.google.android.gms.action) play-services-base-7.0.0(classes.jar)
ListItemIntents (com.google.android.gms.action) aar-library(classes.jar)
esecuzione dell'ispezione gradle dependencyInsight --dependency play-services-base --configuration compile
ottengo:
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)
Il problema è in AAR-bibliotecaclasses.jar
: ListIntentIntents
(e, ovviamente, l'intero play-servizi- modulo base) è già lì! Così all'interno
my-gradle-project/app/build/intermediates/exploded-aar/
Ho due riferimenti di modulo play-servizi-base: una sotto cartella com.google.android.gms
, una sotto cartella aar-library
Cosa devo fare?
Prima di tutto grazie per la risposta. Ciò non sembra funzionare: ': app: packageAllDebugClassesForMultiDex FALLITO errore: Esecuzione non riuscita per l'attività ': app: packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: voce duplicata: com/google/android/gms/actions/ItemListIntents.class' Tuttavia, la mia app ha 8 come minSdkVersion, quindi preferirei non seguire quel percorso. –