Prueba de Android: 'Múltiples archivos dex' cuando se usa 'cheque de gradle chequeado'
Cuando ejecuto pruebas basadas en el emulador de Android con:
gradlew check connectedCheck
… falla con:
- Eliminar localizaciones no utilizadas de APK
- Android studio dalvik vm no puede encontrar la clase
- Gradle excluye la clase java de lib reemplazada por su propia clase para evitar duplicados
- Cambiar dinámicamente la clave de manifiesto de depuración / liberación para cada sabor
- ¿Cómo envío una Biblioteca de Android (aar) con dependencias remotas (gradle)?
com.android.dx.util.DexException: Multiple dex files define Lorg/hamcrest/Description;
Aquí está mi archivo 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.+' }
Estoy usando Android Studio, pero las pruebas se ejecutan desde la línea de comandos.
Ejecución de pruebas basadas en no emulador con roboelectric ( gradlew test
) funciona bien.
Creo que es un archivo jar que se incluye dos veces, pero no sé cuál y cómo arreglar. Sugerencias?
EDITAR
Parece que es la línea instrumentTestCompile 'junit:junit:4.10'
que está causando el problema. Pero cuando lo tomo, la prueba roboeléctrica no compila. ¿Cómo debo configurar esto para que pueda ejecutar tanto pruebas basadas en emulador como basadas en roboeletric?
- ¿Cómo puedo conseguir que mi app.iml se mantenga estable en la reconstrucción del proyecto Android Studio?
- ¿Por qué Gradle necesita un archivo settings.gradle?
- Conflicto con dependencia 'com.android.support:support-annotations'. Las versiones resueltas para la aplicación (23.1.0) y la aplicación de prueba (23.0.1) difieren
- Corregir el atributo "Ignorar InnerClasses"
- Configuración del procesador de anotación explícita
- Gradle Android Studio firma con un archivo de propiedades
- Builg.gradle: cómo ejecutar código sólo en el sabor seleccionado
- Errores de proguard de Android
Esto es porque JUnit 4.10 incluye algunas clases Hamcrest (travieso). Se arregló en 4.11 por lo que la actualización.
- ¿Cómo leer XML arbitrario en un objeto genérico en Android?
- Cómo cambiar el ángulo de Android StackView