web-dev-qa-db-fra.com

java.util.Zip.ZipException: entrée en double lors de packageAllDebugClassesForMultiDex

Je ne suis pas sûr de ce que cette erreur signifie. 

Execution failed for task ':excelSior:packageAllDebugClassesForMultiDex'.
> Java.util.Zip.ZipException: duplicate entry: Android/support/v4/util/TimeUtils.class

J'utilise actuellement Android-support-v4.jar pour mes bibliothèques

dependencies {
    compile project(':addThisSDK')
    compile project(':centeredContentButton')
    compile project(':googleplayservices_lib')
    compile files('libs/adxtag2.4.6.jar')
    compile files('libs/Android-support-v4.jar')
    compile files('libs/aws-Android-sdk-1.7.1.1-debug.jar')
    compile files('libs/commons-lang-2.6.jar')
    compile files('libs/crittercism_v4_4_0_sdkonly.jar')
    compile files('libs/dd-plist.jar')
    compile files('libs/FiksuAndroidSDK_4.1.1.jar')
    compile files('libs/iqengines-sdk-barcode.jar')
    compile files('libs/irEventTracker-1.2.jar')
    compile files('libs/jolt-core-0.0.7.jar')
    compile files('libs/json-utils-0.0.7.jar')
    compile files('libs/jsoup-1.7.2.jar')
    compile files('libs/kooaba-api-v4-Java.jar')
    compile 'com.Android.support:multidex:1.0.0'
}

L'erreur ne s'affiche pas lors de la synchronisation graduelle. Juste au moment où j'essaye de lancer l'application 

Quel pourrait être le problème?

110
bman

Vous devez vérifier que vous avez inséré la bibliothèque v4 et compiler la bibliothèque? Vous ne devez pas répéter la bibliothèque dans votre application ou votre programme de dépendance.

supprimez la bibliothèque de répétition afin qu'il ne reste plus qu'une seule V4.

dans votre fichier rép_application build.gradle ajoutez cette commande:

Android{


    configurations {
        all*.exclude group: 'com.Android.support', module: 'support-v4'
        all*.exclude group: 'com.Android.support', module: 'support-annotations'
    }

}

ça marche pour moi! Tu peux l'essayer!

62
GeekHades

Vous avez probablement déjà résolu ce problème, mais pour que cela ne reste pas sans réponse, essayez de l'ajouter à votre build.gradle:

configurations {
    all*.exclude group: 'com.Android.support', module: 'support-v4'
}
81
zwebie

J'ai également rencontré ce problème lors de l'importation d'un ancien projet Eclipse. Il s’est produit une ancienne dépendance en tant que fichier jar dans le projet.

il suffit d'enlever 

compiler fileTree (dir: 'libs', inclure: '* .jar')

en fichier gradé

et ajouter une dépendance dans le fichier gradle.

Ça marche pour moi ..

Dans mon cas, l'erreur "d'entrée en double" mentionnée est survenue après la définition demultiDexEnable=true dans le fichier build.gradle.

Pour résoudre complètement l’erreur, jetez un coup d’œil sur Configurez les applications avec plus de 64K méthodes (surtout "Configuration de votre application pour Multidex avec Gradle").

En outre, recherchez les occurrences de la classe qui entraînent l'erreur "entrée en double" à l'aide de ctrl + n dans Android Studio. Déterminez le module et la dépendance contenant le doublon et excluez-le de la construction, par exemple:

compile ('org.roboguice:roboguice:2.0') {
    exclude module: 'support-v4'
}

J'ai dû essayer plusieurs étiquettes de modules jusqu'à ce que cela fonctionne. L'exclusion de "support-v4" résout des problèmes liés à "Java.util.Zip.ZipException: entrée en double: Android/support/v4/*"

12
b00n12

Je crois comprendre qu'il existe des références en double à la même API (probablement des numéros de version différents). Il devrait être assez facile de déboguer lors de la génération à partir de la ligne de commande.

Essayez ./gradlew yourBuildVariantName --debug à partir de la ligne de commande.

L'élément fautif sera le premier échec. Un exemple pourrait ressembler à ceci:

14:32:29.171 [INFO] [org.gradle.api.Task] INPUT: /Users/mydir/Documents/androidApp/BaseApp/build/intermediates/exploded-aar/theOffendingAAR/libs/google-play-services.jar

14:32:29.171 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':BaseApp:packageAllyourBuildVariantNameClassesForMultiDex'

14:32:29.172 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :BaseApp:packageAllyourBuildVariantNameClassesForMultiDex FAILED'

Dans le cas ci-dessus, le fichier aar que j'avais inclus dans mon répertoire libs (theOffendingAAR) incluait le fichier jar des services Google Play (oui, le tout. Oui, je le sais.) Pendant que mon base de construction utilisait les services de localisation:

compile 'com.google.Android.gms:play-services-location:6.5.87'

Vous pouvez supprimer en toute sécurité l'élément incriminé de votre fichier de construction, le nettoyer et le reconstruire (à répéter si nécessaire).

9
user01000101

vérifiez les versions de vos dépendances, les versions compatibles doivent porter une attention particulière aux paquets com.google, elles doivent avoir la même version, comme 

compile 'com.google.Android.gms:play-services:8.3.0'
compile 'com.google.Android.gms:play-services-maps:8.3.0'

Les deux sont 8.3.0, si vous avez une autre version, la compilation lèvera cette exception.

8
Ninja Coding

Pour l'erreur Expose.class i.e

Java.util.Zip.ZipException: entrée en double: com/google/gson/annotations/Expose.class

utilisez le code ci-dessous

configurations {
    all*.exclude  module: 'gson'
}
5

Supprimez simplement le fichier Jar de vos dépendances gradle.project en v7 Et exécutez votre projet. 

5

découvrez que la bibliothèque dépend du support v4 et excluez-le.

le code dans build.gradle est comme ceci:

androidTestCompile('com.Android.support.test.espresso:espresso-contrib:2.2.1') {
    // http://stackoverflow.com/a/30931887/5210
    exclude group: 'com.Android.support', module: 'appcompat'
    exclude group: 'com.Android.support', module: 'support-v4'
    exclude module: 'recyclerview-v7'
}

Dans ma situation, la lib 'espresso' a un pot appelé support-v4 et, dans mon projet 'app', a le même support-v4, exclut le support-v4 lors de l'importation d'espresso.

PS: il semble que compile project ne puisse pas fonctionner avec la exclude

3
Ninja

En effet, vous avez ajouté une bibliothèque et donné sa dépendance à un module plusieurs fois.

Dans mon cas, j'avais ajouté une bibliothèque en tant que module et dépendance à la fois.

La suppression d’une source d’ajout de bibliothèque (j’ai supprimé la dépendance de Gradle) a résolu mon problème.

1
Rahul Rastogi

Dans mon cas, l'erreur exacte était en dessous

': Android: transformClassesWithJarMergingForDebug'.

com.Android.build.api.transform.TransformException: Java.util.Zip.ZipException: entrée en double: com/google/Android/gms/internal/zzqx.class

J'utilisais une autre version de Google Apis dans un fichier de modules

if (!project.hasProperty('gms_library_version')) {
        ext.gms_library_version = '8.6.0'
   }

cependant dans d'autres modules version 11.6.0 comme ci-dessous

   compile "com.google.Android.gms:play-services-ads:11.6.0"
    compile "com.google.Android.gms:play-services-games:11.6.0"
    compile "com.google.Android.gms:play-services-auth:11.6.0"

Cependant, pour trouver cela, j’ai fait un ctrl + n dans Android studio et saisi le nom de classe zzqx.class, puis 2 fichiers jar étant extraits pour cette classe, puis j’ai compris qu’à un moment donné, j’utilisais la version 8.6.0. En modifiant les versions 8.6.0 à 11.6.0 et en reconstruisant le projet, le problème a été résolu.

J'espère que cela t'aides . 

Plus d'informations ici https://www.versionpb.com/tutorials/step-step-tutorials-libgdx-basic-setup-libgdx/implementing-google-play-services-leaderboards-in-libgdx/

0
paarth batra

J'ai fait face à ce problème car j'ai copié manuellement le fichier jar dans les bibliothèques ainsi que mentionné la dépendance dans le fichier Gradle. Vous vérifiez également dans la structure de votre projet, si le même fichier JAR est copié dans un autre dossier tel que libs ou dans le dossier du projet. 

0
Ashish Rawat

Dans mon cas, l'erreur mentionnée "d'entrée en double" s'est produite après la définition de multiDexEnable = true dans le fichier build.gradle.

et l'erreur exacte que je devenais était en dessous:

Error:Execution failed for task 
':Android:transformClassesWithJarMergingForDebug'.
> com.Android.build.api.transform.TransformException: 
Java.util.Zip.ZipException: duplicate entry: 
com/google/Android/gms/internal/zzqx.class

Donc, la première chose que je recherche pour la classe qui provoque une erreur "d'entrée en double" avec ctrl + n dans Android Studio et la recherche de com/google/Android/gms/internal/zzqx.class 8.4.0 et 1 avec la version 11.6.0.

Pour résoudre ce problème, j’ai fait les deux pour utiliser 11.6.0 et il a été corrigé exemple 

plus tôt 

    compile "com.google.Android.gms:play-services-games:11.6.0"
    compile "com.google.Android.gms:play-services-auth:8.4.0"
    compile "com.google.Android.gms:play-services-ads:11.6.0"

Après

    compile "com.google.Android.gms:play-services-games:11.6.0"
    compile "com.google.Android.gms:play-services-auth:11.6.0"
    compile "com.google.Android.gms:play-services-ads:11.6.0"

Reconstruction Fixe.

0
paarth batra

il suffit d'effacer Android/support/v4/util/TimeUtils.class

0
jas-chu

Ce problème m'a coûté une journée entière. J'ai finalement rétrogradé la version de la bibliothèque firebase-ui de 2.0.0 à 1.2.0 et ajouté le code suivant dans le fichier build.gradle de niveau projet:

allprojects {
    repositories {
        jcenter()

        // Add the following code to your project level build.gradle
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
}
0
Darush

J'ai aussi le problème parce que j'ai compilé 'com.Android.support:appcompat-v7:24.0.0-alpha1' mais j'ai ajouté la compilation de librairie Recyclerview 'com.Android.support:recyclerview-v7:24.0.2' .. J'ai changé la version comme même que compat like (24.0.2 au lieu de 24.0.0).

j'ai eu la réponse ... peut-être que ça va aider quelqu'un.

0
S HemaNandhini

Pour Erreur: L'exécution a échoué pour la tâche ': app: transformClassesWithJarMergingForDebug' com.Android.build.api.transform.TransformException Java.util.Zip.ZipException en double entrée com/google/gson/annotations/Expose.class

Voici ce que j'ai fait:

1) Supprimez le fichier gson-2.5.jar . 2) Configurations {all * .exclude module: 'gson-2.5'}

0
LEMUEL ADANE

J'ai eu le même problème après la mise à niveau du SDK Android. J'ai pu exécuter l'application dans le buildToolsVersion '23.0.1', j'ai eu la même erreur lorsque j'ai changé pour buildToolsVersion '24.0.3' 

J'ai résolu le problème en mettant à jour ma version de Java de 1.7 à 1.8 avec compileSdkVersion 24

0
Muhamed Riyas M

Pour moi, quelque chose de similaire s'est passé quand j'avais accidentellement ajouté

apply plugin: 'kotlin-Android'

à mon module de bibliothèque Android. Supprimer la ligne résout le problème.

0
A. Steenbergen