web-dev-qa-db-fra.com

Echec de la construction de la génération: Java.util.Zip.ZipException: entrée en double: org/Apache/commons/io/CopyUtils.class

Lorsque j'essaie d'exécuter l'application sur mon Nexus 7, la construction de gradle échoue à chaque fois et génère la même erreur:

> com.Android.build.api.transform.TransformException:
Java.util.Zip.ZipException: duplicate entry:
org/Apache/commons/io/CopyUtils.class

L'erreur semble indiquer que CopyUtils.class à partir de commons-io est inclus deux fois dans le processus de construction.

Le journal complet:

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

Aussi mon 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'])
}

Il me semble avoir maintenant

Erreur: (43, 0) La méthode Gradle DSL est introuvable: 'com.Android.support:support-v4:24.1.1 ()' Causes possibles:

  • Le projet 'wildrank-Android-master' utilise peut-être une version de Gradle ne contenant pas la méthode. Ouvrir le fichier wrapper Gradle
  • Il manque peut-être un plugin Gradle au fichier de construction. Appliquer le plugin Gradle
  • Mon emballage Gradle

    Mer. Juil. 06 21:02:27 HAP 2016

    distributionBase = GRADLE_USER_HOME distributionPath = wrapper/dists

    zipStoreBase = GRADLE_USER_HOME

    zipStorePath = wrapper/dists

    distributionUrl = https: //services.gradle.org/distributions/gradle-2.10-all.Zip

    Mon nouveau fichier de notes

    apply plugin: 'com.Android.application' // IMPORTANT: 'com.Android.application' n'est pas

    Android {compileSdkVersion 24 // compile sdk doit toujours être la dernière version de buildToolsVersion "24.0.1" // Je ne sais pas si cela compte

    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 (inclure: ['* .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
    // 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' }
    

    }

    6
    insanity_serum

    Il existe une option pour résoudre le problème au niveau de résolution des dépendances de niveaux

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

    La raison du conflit est que org.Apache.commons:commons-io:1.3.2 a été poussé par erreur https://stackoverflow.com/a/37421794/624706

    Vous pouvez voir d'où vient la dépendance avec

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

    22
    Sergii Pechenizkyi

    Veuillez utiliser le code ci-dessous dans le fichier build.gradle.

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

    Prendre plaisir!!!

    12
    Rasool Mohamed

    Edit 2:

    J'ai créé un fork du projet qui est compilé et exécuté sur l'aperçu 7 d'Android Studio 2.2. Vous pouvez également consulter le fichier diff si vous ne souhaitez pas télécharger à nouveau le projet.

    Modifier:

    Voici un fichier build.gradle qui a été compilé pour moi. J'ai commenté tous les changements importants:

    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'
    }
    

    Essayez ce que Maxence Barroy a dit. Si cela ne fonctionne pas, consultez cette réponse :

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

    Comme je ne sais pas à quoi ressemble votre fichier build.gradle, je ne peux pas vraiment vous aider, mais vérifiez cette réponse aussi. Assurez-vous également que vous disposez de la dernière version de Gradle 'com.Android.tools.build:gradle:2.2.0-alpha6'.

    1
    SUPERCILEX
     compile('org.Apache.commons:commons-io:1.3.2') {
            exclude module: 'commons-io'
     }
    

    essayez-le ..

    0
    Neeraj Singh

    En outre, vous pouvez vérifier la version de gradle. Les propriétés ci-dessus doivent provoquer des conflits de fusion.

    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'
    

    Et s'il vous plaît essayez les propriétés ci-dessus.

    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
    Özer Özcan