Gradle Build error: java.util.zip.ZipException: duplicate entry: org / apache / commons / io / CopyUtils.class

When I try to run the application on my nexus 7, the gradle build fails every time and gives the same error:

> com.android.build.api.transform.TransformException:
java.util.zip.ZipException: duplicate entry:
org/apache/commons/io/CopyUtils.class

It seems that the error indicates which CopyUtils.classof is being commons-ioincluded twice in the build process.

Full log:

Information:Gradle tasks [:android:assembleDebug]

:android:preBuild UP-TO-DATE

:android:preDebugBuild UP-TO-DATE

:android:checkDebugManifest

:android:preReleaseBuild UP-TO-DATE

:android:prepareComAndroidSupportMultidex101Library UP-TO-DATE

:android:prepareDebugDependencies

:android:compileDebugAidl UP-TO-DATE

:android:compileDebugRenderscript UP-TO-DATE
:android:generateDebugBuildConfig UP-TO-DATE

:android:mergeDebugShaders UP-TO-DATE

:android:compileDebugShaders UP-TO-DATE

:android:generateDebugAssets UP-TO-DATE

:android:mergeDebugAssets UP-TO-DATE

:android:generateDebugResValues UP-TO-DATE


:android:generateDebugResources UP-TO-DATE

:android:mergeDebugResources UP-TO-DATE

:android:processDebugManifest UP-TO-DATE

:android:processDebugResources UP-TO-DATE

:android:generateDebugSources UP-TO-DATE

:android:incrementalDebugJavaCompilationSafeguard UP-TO-DATE

:android:compileDebugJavaWithJavac UP-TO-DATE

:android:compileDebugNdk UP-TO-DATE

:android:compileDebugSources UP-TO-DATE

:android:prePackageMarkerForDebug
:android:transformClassesWithJarMergingForDebug FAILED
Error:Execution failed for task 
':android:transformClassesWithJarMergingForDebug'.

> com.android.build.api.transform.TransformException: 
java.util.zip.ZipException: duplicate entry: 
org/apache/commons/io/CopyUtils.class

Information:BUILD FAILED

Information:Total time: 11.208 secs

Information:1 error

Information:0 warnings

Information:See complete output in console

Also my build.gradle:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"


    defaultConfig {
        applicationId "org.wildstang.wildrank.android"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

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

    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.+'
    compile 'com.android.support:support-v13:19.+'
    compile 'de.congrace:exp4j:0.3.+'
    compile 'org.apache.commons:commons-io:1.3.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

It seems now I'm getting

Error: (43, 0) gradle DSL method not found: 'com.android.support:support-v4:24.1.1 ()' Possible reasons:

The wildrank-android-master project may use a version of gradle that does not contain this method. Open the gradle shell file. The gradle plugin may not be in the build file. Apply gradle plugin

My gradle wrapper

Wed Jul 06 21:02:27 PDT 2016

distributionBase = GRADLE_USER_HOME distributionPath = /dists

zipStoreBase = GRADLE_USER_HOME

zipStorePath = /dists

distributionUrl = HTTPS://services.gradle.org/distributions/ gradle -2.10-all.zip

gradle

: 'com.android.application'//: 'com.android.application' not

android {   compileSdkVersion 24// sdk   buildToolsVersion "24.0.1" // ,

defaultConfig {
    applicationId "org.wildstang.wildrank.android"
    minSdkVersion 14
    targetSdkVersion 19 //Looks like this is a new app, why are you using 19 and not 24?
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
dexOptions {
    javaMaxHeapSize "4g"
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

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

lintOptions {
    abortOnError false
}

}

{   compile fileTree (include: ['*.jar'], dir: 'libs')//

//Ignore these, I don't think they are important for you, but I needed them to get my test project to compile
// These version numbers worked for me:
compile 'com.android.support:support-v4:24.1.1'{exclude group: 'org.apache.commons', module: 'commons-io' }
compile 'com.android.support:support-v13:24.1.1'{ exclude module: 'commons-io' }
compile 'de.congrace:exp4j:0.3.11'{ exclude module: 'commons-io' }
compile 'org.apache.commons:commons-io:1.3.2'{ exclude module: 'commons-io' }

}

+4
4

gradle

configurations.all {
    resolutionStrategy.dependencySubstitution {
        substitute module('org.apache.commons:commons-io:1.3.2') with module('commons-io:commons-io:1.3.2')
    }
}

, org.apache.commons:commons-io:1.3.2 fooobar.com/questions/430447/...

, :

gradle :main:dependencyInsight --configuration compile --dependency commons-io

+20

, build.gradle.

configurations {
    all*.exclude group: 'org.apache.commons'
}

!!!

+12

2:

fork , Android Studio 2.2 7. diff, .

:

build.gradle, . :

apply plugin: 'com.android.application' //IMPORTANT: 'com.android.application' not 

android {
    compileSdkVersion 24 // compile sdk should always be latest
    buildToolsVersion "24.0.1" // Don't know if this matters


    defaultConfig {
        applicationId "org.wildstang.wildrank.android"
        minSdkVersion 14
        targetSdkVersion 19 //Looks like this is a new app, why are you using 19 and not 24?
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

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

    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs') //IMPORTANT

    //Ignore these, I don't think they are important for you, but I needed them to get my test project to compile
    compile 'com.android.support:appcompat-v7:24.1.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha5'
    compile 'com.android.support:design:24.1.1'

    // These version numbers worked for me:
    compile 'com.android.support:support-v4:24.1.1'
    compile 'com.android.support:support-v13:24.1.1'
    compile 'de.congrace:exp4j:0.3.11'
    compile 'org.apache.commons:commons-io:1.3.2'
}

- Maxence Barroy. , :

compile('com.example:some-dependency:4.2') {
    exclude module: 'commons-io'
}

, build.gradle, , . , , ​​ Gradle 'com.android.tools.build:gradle:2.2.0-alpha6'

0

, gradle. .

gradle -wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

build.gradle

classpath 'com.android.tools.build:gradle:2.1.3'

.

gradle -wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

build.gradle

classpath 'com.android.tools.build:gradle:2.3.3'
0

Source: https://habr.com/ru/post/1649822/


All Articles