Search code examples
androidandroid-studioandroid-gradle-pluginzxingandroid-developer-api

java.util.zip.ZipException: duplicate entry


I have been battling this error all day in Android Studio. Project was imported from an eclipse solution. I have been trying to implement all fixes that are listed for similar posts, nothing is working. I am an Android beginner.

I will be happy to provide any further information.

Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.

java.util.zip.ZipException: duplicate entry: com/google/zxing/BarcodeFormat.class

Please help!! Should I just try to get it to run in Eclipse?

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.2'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.appname.android"
        minSdkVersion 8
        targetSdkVersion 18
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:22.1.1'
    compile files('libs/ksoap2-android-assembly-3.1.0-jar-with-dependencies.jar')
    provided files('libs/zxing-core.jar')
}

Solution

  • Make sure you have the latest build toolds and sdk from the SDK manager. I have converted those jars to Gradle dependencies.

    build.gradle:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    buildscript {
        repositories {
            jcenter()
            maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' } // <-- added for ksoap
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:1.1.3' // <-- updated
        }
    }
    
    allprojects {
        repositories {
            jcenter()
            maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' } // <-- added for ksoap
        }
    }
    

    app/build.gradle:

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 22
        buildToolsVersion "22.0.1" // <-- updated
    
        defaultConfig {
            applicationId "com.appname.android"
            minSdkVersion 8
            targetSdkVersion 22  // <-- updated
            // multiDexEnabled true  // <-- you do not need this
        }
    
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
    }
    
    dependencies {
        compile 'com.android.support:support-v4:22.1.1'
        compile 'com.google.code.ksoap2-android:ksoap2-android:3.4.0'
        // compile files('libs/ksoap2-android-assembly-3.1.0-jar-with-dependencies.jar') // <-- avoid using jars
        compile 'com.google.zxing:core:3.2.0'
        // provided files('libs/zxing-core.jar') // <-- avoid using jars
    }