4
当我运行了Android基于仿真的测试:Android的测试: '多DEX文件' 当使用 'gradle这个检查connectedCheck'
gradlew check connectedCheck
...它失败:
com.android.dx.util.DexException: Multiple dex files define Lorg/hamcrest/Description;
这里的我的build.gradle文件:
buildscript {
repositories {
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.0'
classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.1-SNAPSHOT'
}
}
apply plugin: 'android'
apply plugin: 'android-test'
repositories {
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
}
task wrapper(type: org.gradle.api.tasks.wrapper.Wrapper) {
gradleVersion = '1.9'
}
android {
compileSdkVersion 17
buildToolsVersion "18.1"
defaultConfig {
minSdkVersion 13
targetSdkVersion 18
}
sourceSets {
instrumentTest.setRoot('src/test')
}
lintOptions {
abortOnError false
}
}
dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile fileTree(dir: 'libs', include: '*.jar')
testCompile 'junit:junit:4.10'
testCompile 'org.robolectric:robolectric:2.3-SNAPSHOT'
testCompile 'com.squareup:fest-android:1.0.+'
instrumentTestCompile 'junit:junit:4.10'
instrumentTestCompile 'org.robolectric:robolectric:2.3-SNAPSHOT'
instrumentTestCompile 'com.squareup:fest-android:1.0.+'
}
我正在使用Android Studio,但测试是从命令行运行的。
运行非仿真器的基于Roboelectric的测试(gradlew test
)工作正常。
我相信这是一个包含两次的jar文件,但不知道哪一个以及如何修复。 建议?
编辑
看来,它是instrumentTestCompile 'junit:junit:4.10'
行导致该问题。但是当我把它拿出来的时候,这个轮机电测试就不能编译了。我应该如何配置它才能运行基于仿真器和基于roboeletric的测试?
你有支持库jar文件在你的libs目录下吗?当我将构建路径jar文件和libs目录(支持库所在的目录)作为依赖关系(在eclipse中)时,我遇到了这个问题。我随意做了,日食认为支持库有两次。 –
同样的问题在这里 – Extranion