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