2015-10-06 16 views
13

Scusate se ho fatto una domanda doppia, ma non sono riuscito a trovare una soluzione per questo errore. Ho navigato su stackoverflow, sito gradle, blog Android, ricerca su google ma non c'era una soluzione funzionante per diverse ore. Sono un principiante di Android quindi non sono sicuro di aver perso qualcosa in altri post.Android: app: transformClassesWithJarMergingForDebug FAILED - ZipException: voce duplicata

apply plugin: 'com.android.application' 
apply plugin: 'com.google.gms.google-services' 

android { 
     compileSdkVersion 23 
     buildToolsVersion "23.0.0" 

defaultConfig { 
    minSdkVersion 14 
    targetSdkVersion 22 
    multiDexEnabled true 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 

dependencies { 
compile 'com.android.support:appcompat-v7:22.2.1.' 
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1' 
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1' 
compile 'com.android.support:recyclerview-v7:22.2.1.' 
compile 'com.android.support:cardview-v7:22.2.1.' 
compile 'com.squareup.picasso:picasso:2.5.2' 
compile 'com.pnikosis:materialish-progress:1.7' 
compile 'com.jakewharton:butterknife:7.0.1' 
compile 'com.google.android.gms:play-services:8.1.0' 
compile files('libs/android-support-v4-22.2.1.jar') 
compile files('libs/applovin-sdk-6.0.1.jar') 
compile files('libs/appodeal-1.13.1.jar') 
compile files('libs/chartboost-5.2.0.jar') 
compile files('libs/my-target-4.0.13.jar') 
compile files('libs/unity-ads-1.4.7.jar') 
} 

Il progetto funzionava correttamente fino a quando non aggiungo alcune librerie da appodeal (quelle file di compilazione). Ho provato a costruire il progetto ma gradle ha dato gli errori.

:app:transformClassesWithJarMergingForDebug'. 
com.android.build.transform.api.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v7/widget/RecyclerView$ItemDecoration.class 

ci sono anche altri 2 errori della stessa eccezione circa duplicato entry non so perché li ho avuti: android/support/v4/PrintKitKat.class e android/support/multidex/MultiDex$V14.class.

Ho provato ad aggiornare gradle, invalidare e riavviare per svuotare la cache, omettere le dipendenze quindi ricostruire/pulire il progetto, trovare il potenziale modulo duplicato da escludere e cercare i progetti per quelli .class ma non ho trovato alcuna duplicazione.

+2

Forse uno dei vostri vasi contiene già RecyclerView libreria .jar/Supporto Multidex .jar/Supporto v4 .jar Cercate di non dichiararli da soli . Se ti aiuta, devi trovare un modo per far sì che Gradle "unisca" le dipendenze duplicate. Sfortunatamente guardando la lista delle dipendenze non posso suggerire quale libreria possa dipendere da recyclerview/multidex-support/support-v4. – Lingviston

+4

Potresti eseguire l'applicazione **./Gradlew: dipendenze ** e allegare il risultato. – Oleksandr

+0

Mi dispiace per la risposta in ritardo, non riesco ad entrare in stackover tardi. Ho ricontrollato l'albero della libreria esterna come suggerito da @Lingviston e ho visto che c'erano alcune duplicazioni perché ho aggiornato la versione di alcune dipendenze, quindi ho scaricato 2 versioni in cartelle diverse. Penso che funzionasse bene perché non ho aggiunto ** multiDexEnable true **. Ma poi quando aggiungo più lib da appodeal e il progetto ha superato il limite di 65k (ho pensato così), allora devo usare _multi dexing_ e gradle non li "fonde". Grazie a Alexandr per il comando, ha fornito una vista ad albero delle dipendenze molto completa. –

risposta

13

È possibile verificare mettere questo sulla radice della directory nel terminale

./gradlew clean 
+0

Tuttavia ho eliminato manualmente il duplicato. Se solo tu lo hai postato prima. Caso risolto, grazie: D –

Problemi correlati