【发布时间】:2016-12-06 23:43:33
【问题描述】:
尝试在我的 nexus 7 上运行应用程序时,gradle 构建每次都失败并给出相同的错误:
> com.android.build.api.transform.TransformException:
java.util.zip.ZipException: duplicate entry:
org/apache/commons/io/CopyUtils.class
该错误似乎表明来自commons-io 的CopyUtils.class 在构建过程中被包含两次。
完整日志:
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
还有我的 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'])
}
我现在好像明白了
错误:(43, 0) 找不到 Gradle DSL 方法:'com.android.support:support-v4:24.1.1()' 可能的原因:
我的 Gradle 包装器
2016 年 7 月 6 日星期三 21:02:27 PDT
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
我的新 gradle 文件
应用插件:'com.android.application' //重要:'com.android.application' 不是
机器人{ 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' }
}
【问题讨论】:
标签: java android gradle android-gradle-plugin build.gradle