2 votes

Comment résoudre "TransformException : java.util.zip.ZipException : duplicate entry" dans Android ?

Description de l'erreur :

Erreur:L'exécution a échoué pour la tâche ':app:transformClassesWithJarMergingForDebug'. > com.Android.build.api.transform.TransformException : java.util.zip.ZipException : entrée en double : com/google/api/client/http/AbstractInputStreamContent.class

Voici mon code gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "com.richwebs.user.hohoride"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

packagingOptions{
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile('com.google.api-client:google-api-client-android:1.20.0') {
    exclude group: 'org.apache.httpcomponents'
}

compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.android.gms:play-services:9.0.2'
compile 'com.google.android.gms:play-services-base:9.0.2'
compile 'com.google.android.gms:play-services-analytics:9.0.2'
compile 'com.google.android.gms:play-services-maps:9.0.2'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.google.android.gms:play-services-ads:9.0.2'
compile 'com.google.android.gms:play-services-auth:9.0.2'
compile 'com.google.android.gms:play-services-gcm:9.0.2'
compile group: 'commons-io', name: 'commons-io', version: '2.0.1'

}
android {
useLibrary 'org.apache.http.legacy'
}

1voto

Sagar Chavada Points 2497

Il y a deux façons de résoudre ce problème

  1. Si les références aux méthodes dans votre application dépassent leur limite, augmentez la taille du tas comme ceci.

dexOptions { preDexLibraries = false javaMaxHeapSize "4g" }

et aussi activer mutidexSupport comme ceci :

defaultConfig {

        multiDexEnabled true
    }

dependencies {   
    compile 'com.android.support:multidex:1.0.1'
}

et définissez également l'attribut name dans votre fichier manifest :

<application
        android:name="android.support.multidex.MultiDexApplication" >
</application>
  1. Si cela ne fonctionne pas, vous n'avez qu'une seule option : exclure la bibliothèque répétée dans votre fichier gradle. Cette erreur s'appelle " already added " et se produit lorsque vous ajoutez le fichier .jar dans le dossier lib. et que vous définissez également la dépendance gradle pour celui-ci.

voici le code complet de mon fichier gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    useLibrary 'org.apache.http.legacy'

    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }

    defaultConfig {
        applicationId "com.apple"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    packagingOptions {
        exclude 'META-INF/license.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE-FIREBASE.txt'
        exclude 'META-INF/NOTICE'
    }
}

dependencies {
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:support-v4:23.3.0'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:design:23.3.0'
    compile project(':library')
    compile files('libs/httpmime-4.3.jar')
    compile files('libs/gcm.jar')
    compile 'com.mcxiaoke.volley:library:1.0.19'
    compile 'com.google.code.gson:gson:2.4'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.firebase:firebase-client-android:2.3.1'
    compile files('libs/httpcore-4.3.2.jar')
    compile files('libs/httpclient-4.3.3.jar')
}

configurations {
    all*.exclude group: 'com.android.support', module: 'support-vector-drawable'
    all*.exclude group: 'com.android.support', module: 'animated-vector-drawable'
    all*.exclude group: 'com.android.support', module: 'support-annotations'
}

j'ai un problème avec ces trois modules, donc j'ai juste exclu toutes les dépendances, et mon erreur a disparu.

0voto

Ognev Zair Points 1011

Peut-être un problème dans les différentes versions des librairies importées

Vous avez

  compile 'com.google.android.gms:play-services-analytics:9.0.0' // wrong!
  compile 'com.google.android.gms:play-services-gcm:9.0.2'

Assurez-vous que vous utilisez toujours les mêmes versions :

  compile 'com.google.android.gms:play-services-analytics:9.0.2'
  compile 'com.google.android.gms:play-services-gcm:9.0.2'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X