java.util.zip.ZipException: duplicate entry :how to overcome

Mahendra Chhimwal

I have used multiple Android libraries and modules in my project. Each one has its own v4.Support lib. I am getting java.util.zip.ZipException: duplicate entry . When I search for the duplicate class file in the project, there are multiple files of these classes as because of multiple v4.support lib in each libraries. I know this question has been asked many a times here but nothing is working for me .

My question is : how to remove these multiple v4.support files ? I want to put this v4.support lib only once and all other module should reference it from there. How do I achieve this?

Following is my build.gradle script

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
        //classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
        classpath 'io.fabric.tools:gradle:1.15.2'
    }
}

apply plugin: 'android'
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile('com.crashlytics.sdk.android:crashlytics:2.2.3@aar') {
        transitive = true
    }
    compile('com.android.support:multidex:1.0.0')
    //compile ('com.android.support:appcompat-v7:22.1.0')
    compile project(':..:..:..:..:..:..:android_libraries:appcompat')
    compile project(':..:..:..:..:..:..:android_libraries:facebook')
    compile project(':..:..:..:..:..:..:android_libraries:google_play_services:libproject:google-play-services_lib')
    compile project(':..:..:..:..:..:..:android_libraries:SlidingMenu')
    compile project(':..:..:..:..:..:..:android_libraries:StickingGridViewLibrary')
    compile project(':..:..:..:..:..:..:android_libraries:view_pager_library')
    compile project(':..:..:..:..:..:..:android_libraries:ZXing2.3')
    compile project(':..:..:..:..:..:..:android_libraries:xyz')
    compile project(':..:..:..:..:..:..:android_libraries:apptentive')

}

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        versionCode 1
        versionName "1.0"
        minSdkVersion 15
        targetSdkVersion 21

        // Enabling multidex support.
        multiDexEnabled true
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    ant.importBuild './../../../../../../buildscripts/wlbuild.xml'


    apt {
        arguments {
            androidManifestFile variant.outputs[0].processResources.manifestFile
            // if you have multiple outputs (when using splits), you may want to have other index than 0

            resourcePackageName 'com.kohls.mcommerce.opal'

            // If you're using Android NBS flavors you should use the following line instead of hard-coded packageName
            // resourcePackageName android.defaultConfig.applicationId

            // You can set optional annotation processing options here, like these commented options:
            // logLevel 'INFO'
            // logFile '/var/log/aa.log'
        }
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
    buildDir = './../../../../../../build/native'

    lintOptions {
        abortOnError false
    }
    dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }
    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
    }
}

And I am getting errors like this. Each time I clean the project it complies successfully. But when I try to give Run command it shows the following types of error.

Execution failed for task ':packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/v4/media/TransportMediatorCallback.class
Mahendra Chhimwal

As I workaround my above problem and find a way to overcome it. Main reason for packageAllDebugClassesForMultiDex error is the same you find in all other posts in Stackoverflow i.e. you must have some class files which are available more than once in project. In my case I have so many modules in above project as Facebook , google pay services and sliding menu etc.. . All these module have there own copy of v4.support jar file. What I did was delete all v4.support files from all these libraries libs folder. Then Add dependency to v4.support lib from my sdks i.e. com.android.support libs from Android Studio project Structure. For This..

  • 1* GO to File>Project Structure.
  • 2* Select each one of these modules one by one.

  • 3* In the last tab named Dependency , Remove compile fileTree(dir: 'libs', include: '*.jar') if you had only v4.support lib (or the probleomatic one)in libs folder of that module.

  • 4* Add v4.support lib by clicking + then add libraries and select v4.support libs from your sdks.

Its done. Clean the project and build it again.packageAllDebugClassesForMultiDex problem has gone.

As for transitive dependency , if you know the exact dependency which cause the Duplicate file in dex error while building the project, you can exclude it as belo

 compile(project(':..:..:..:..:..:..:android_libraries:walletsdkandroidmodule')) {
        exclude group: 'com.google.code.gson'
    }

If you want any transitive dependency in any module, eg.

compile('com.crashlytics.sdk.android:crashlytics:2.2.3@aar') {
        transitive = true
    }

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

java.util.zip.ZipException: duplicate entry

From Dev

java.util.zip.ZipException: duplicate entry

From Dev

Error ':app:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry:

From Java

java.util.zip.ZipException: duplicate entry during packageAllDebugClassesForMultiDex

From Dev

java.util.zip.ZipException: duplicate entry: AbstractHttpContent.class

From Dev

Error: java.util.zip.ZipException: duplicate entry

From Dev

Getting java.util.zip.ZipException: duplicate entry exception

From Dev

Android Studio java.util.zip.ZipException: duplicate entry

From Dev

java.util.zip.ZipException: duplicate entry error

From Dev

java.util.zip.ZipException: duplicate entry: n.class

From Dev

java.util.zip.ZipException: duplicate entry: org/apache/http/HttpMessage.class

From Dev

Android Packager: [main] java.util.zip.ZipException: duplicate entry: classes.dex

From Dev

Android Parse.com - java.util.zip.ZipException: duplicate entry: bolts/AggregateException.class

From Dev

JavaFX Gradle build error, java.util.zip.ZipException: duplicate entry: META-INF/LICENSE

From Dev

Error JSON.simple: java.util.zip.ZipException: duplicate entry: org/hamcrest/BaseDescription.class

From Dev

java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class

From Dev

TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/StyleRes.class

From Dev

Android project build successfully but ran failed with error: java.util.zip.ZipException: duplicate entry

From Dev

transformClassesWithJarMergingForDebug,com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry:

From Dev

Android project build successfully but ran failed with error: java.util.zip.ZipException: duplicate entry

From Dev

Android Packager: java.util.zip.ZipException: duplicate entry: resources.arsc

From Dev

Android Packager: [main] java.util.zip.ZipException: duplicate entry: classes.dex

From Dev

'AllDevelopmentDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: retrofit/android/AndroidApacheClient.class

From Dev

java.util.zip.ZipException: duplicate entry: org/apache/http/HttpMessage.class

From Dev

TransformException: java.util.zip.ZipException: duplicate entry: io/realm/annotations/Ignore.class

From Dev

transformClassesWithJarMergingForDebug,com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry:

From Dev

java.util.zip.ZipException: duplicate entry: org/ksoap2/SoapEnvelope.class

From Dev

java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzb.class

From Dev

java.util.zip.ZipException: duplicate entry: android/arch/lifecycle/LiveData$1.class

Related Related

  1. 1

    java.util.zip.ZipException: duplicate entry

  2. 2

    java.util.zip.ZipException: duplicate entry

  3. 3

    Error ':app:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry:

  4. 4

    java.util.zip.ZipException: duplicate entry during packageAllDebugClassesForMultiDex

  5. 5

    java.util.zip.ZipException: duplicate entry: AbstractHttpContent.class

  6. 6

    Error: java.util.zip.ZipException: duplicate entry

  7. 7

    Getting java.util.zip.ZipException: duplicate entry exception

  8. 8

    Android Studio java.util.zip.ZipException: duplicate entry

  9. 9

    java.util.zip.ZipException: duplicate entry error

  10. 10

    java.util.zip.ZipException: duplicate entry: n.class

  11. 11

    java.util.zip.ZipException: duplicate entry: org/apache/http/HttpMessage.class

  12. 12

    Android Packager: [main] java.util.zip.ZipException: duplicate entry: classes.dex

  13. 13

    Android Parse.com - java.util.zip.ZipException: duplicate entry: bolts/AggregateException.class

  14. 14

    JavaFX Gradle build error, java.util.zip.ZipException: duplicate entry: META-INF/LICENSE

  15. 15

    Error JSON.simple: java.util.zip.ZipException: duplicate entry: org/hamcrest/BaseDescription.class

  16. 16

    java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class

  17. 17

    TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/StyleRes.class

  18. 18

    Android project build successfully but ran failed with error: java.util.zip.ZipException: duplicate entry

  19. 19

    transformClassesWithJarMergingForDebug,com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry:

  20. 20

    Android project build successfully but ran failed with error: java.util.zip.ZipException: duplicate entry

  21. 21

    Android Packager: java.util.zip.ZipException: duplicate entry: resources.arsc

  22. 22

    Android Packager: [main] java.util.zip.ZipException: duplicate entry: classes.dex

  23. 23

    'AllDevelopmentDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: retrofit/android/AndroidApacheClient.class

  24. 24

    java.util.zip.ZipException: duplicate entry: org/apache/http/HttpMessage.class

  25. 25

    TransformException: java.util.zip.ZipException: duplicate entry: io/realm/annotations/Ignore.class

  26. 26

    transformClassesWithJarMergingForDebug,com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry:

  27. 27

    java.util.zip.ZipException: duplicate entry: org/ksoap2/SoapEnvelope.class

  28. 28

    java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzb.class

  29. 29

    java.util.zip.ZipException: duplicate entry: android/arch/lifecycle/LiveData$1.class

HotTag

Archive