2015-01-27 12 views
17

Ho integrato lo sdk mobile di Zendesk attraverso il suo repository maven nel mio progetto e non si sarebbe più sviluppato. Ha una specie di scontro con la libreria di Picasso che sto usando. Ottengo questo errore durante la compilazione:Gradle Duplicate Entry: java.util.zip.ZipException

Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'. 
> java.util.zip.ZipException: duplicate entry: com/squareup/picasso/Action$RequestWeakReference.class 

mi sono imbattuto ../gradlew dependencies sulla cartella applicazione e questo è quello che ho trovato sotto modulo Zendesk:

\--- com.zendesk:sdk:1.0.0.1 
    +--- com.squareup.retrofit:retrofit:1.4.1 
    | \--- com.google.code.gson:gson:2.2.4 
    +--- com.squareup.picasso:picasso:2.3.2 
    +--- com.android.support:support-v4:20.0.+ -> 21.0.3 (*) 
    \--- com.android.support:appcompat-v7:20.0.+ -> 21.0.3 (*) 

Così Zendesk è anche utilizzando Picasso ma una versione diversa rispetto cosa ho nel mio progetto. Ho provato ad esclusione picasso da Zendesk come questo:

compile (group: 'com.zendesk', name: 'sdk', version: '1.0.0.1'){ 
      exclude group: 'com.squareup.picasso' 
     } 

ma questo fa sì che le eccezioni di runtime in altri componenti della app. Ottengo un NoDefFoundError per una classe totalmente estranea alle librerie.
Qualcuno ha idea di come aggirare questo problema?

+1

Vuoi essere in grado di inviare il file completo "build.gradle" che si sta utilizzando? Grazie. – AndroidGuy

risposta

26

Quando hai aggiunto la dipendenza com.android.support:multidex hai effettivamente aggiunto alcune dipendenze che entrano in collisione con altre dipendenze.

ho risolto da:
---------------
1. la ricerca per la classe, in voi caso la "RequestWeakReference.class" (in Android Studio basta premere Ctrl + N su Windows o CMD-O su Mac)
2. Vedere quale jar lo contiene - Android Studio lo scriverà nel popup.
3. Escludere da tutte le build, ad esempio:

android { 
    configurations{ 
     all*.exclude module: 'servlet-api' 
    } 
} 
+8

c'è qualche soluzione giusta. Sto riscontrando lo stesso problema java.util.zip.ZipException: duplicato: com/google/gson/annotations/Expose.class per favore aiutami. ho messo come questa configurazione {all * .exclude module: 'gson-2.1'} –

+0

@RamBabuPudari sto affrontando lo stesso problema con Expose.class. Hai trovato qualche soluzione? – Rohan

+0

@Tomer Questo ha funzionato per me. Stavo affrontando un problema simile quando usavo il volley in Android Studio in uno dei miei progetti. –

Problemi correlati