gpt4 book ai didi

安卓测试 : 'Multiple dex files' when using 'gradle check connectedCheck'

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:12 24 4
gpt4 key购买 nike

当我运行基于 android 模拟器的测试时:

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' 行导致了问题。但是当我把它拿出来时,机器人电测试不会编译。我应该如何配置它才能同时运行基于模拟器和基于机器人的测试?

最佳答案

这是因为 JUnit 4.10 包含一些 Hamcrest 类(调皮)。它已在 4.11 中修复,因此只需升级即可。

关于安卓测试 : 'Multiple dex files' when using 'gradle check connectedCheck' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21041182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com