答案 0 :(得分:1)
“com.android.dex.DexException:多个dex文件定义”
当一个.class文件或jarfile的内容的两个或多个副本被无意中包含在项目中时,会导致这种令人烦恼的错误。 (Gradle和/或Android Studio的新手经常被这个阻止)。
尝试在应用的顶级build.gradle中将其排除 -
android {
...
packagingOptions {
exclude('org/apache/commons/codec/*')
}
}
检查库是否多次包含为依赖项:查看项目的所有build.gradle文件以确保它只被包含一次。
compile 'org.apache.commons.code' ...
库或子项目还可能包含复制库或类文件的副本:您可以将库排除在编译到应用程序中的位置,在build.gradle文件中查找其编译规范 -
dependencies {
...
compile('com.googlecode.json-simple:json-simple:1.1.1') {
exclude group: 'org.hamcrest'
}
}
如果这不起作用,请尝试将“,module:'library'”附加到排除行,即.-
compile('com.googlecode.json-simple:json-simple:1.1.1') {
exclude group: 'org.hamcrest', module: 'library'
}
要准确确定哪个库或子项目包含重复的类文件,请尝试使用--debug运行gradle并查看控制台输出以跟踪包含来源的位置 -
% gradle --debug release 2>&1 | less
答案 1 :(得分:0)
当我在api 23中使用HttpClient
时,我遇到了类似的问题。我导入org.apache.http.legacy.jar
问题出现了。我用useLibrary 'org.apache.http.legacy'
来解决它。