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:
Mon emballage Gradle
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' }
}
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
Veuillez utiliser le code ci-dessous dans le fichier build.gradle.
configurations {
all*.exclude group: 'org.Apache.commons'
}
Prendre plaisir!!!
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.
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'
.
compile('org.Apache.commons:commons-io:1.3.2') {
exclude module: 'commons-io'
}
essayez-le ..
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'