我正在尝试构建和维护一个旧的工作应用程序,但我无法通过构建阶段。在我的 app/build.gradle
文件中有
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.apache.commons:commons-io:1.3.2'
//some more libraries compiled as well
}
但在尝试执行时出现以下错误:
Error:Execution failed for task ':myApp'. com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/commons/io/CopyUtils.class
这几乎可以肯定是因为当我编译那个 jar 时,在我的外部库树的顶部,生成了:
为什么会发生这种情况,我怎样才能让它停止以便完成构建?
最佳答案
有一个选项可以在 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
被错误推送了https://stackoverflow.com/a/37421794/624706
你可以看到依赖来自哪里
gradle :main:dependencyInsight --configuration compile --dependency commons-io
关于java - Android Gradle 编译 commons-io 在库树中创建副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35185512/