java.lang.VerifyError al ejecutar pruebas de Android con testCoverageEnabled=true
gradle jacoco (3)
Convirtiendo el comentario de @ ben75 en una respuesta: El code.google.com/p/android/issues/detail?id=69174 se ha corregido con build-tools 21.0.0 . Sin embargo, esa versión introdujo otro error específico de Windows , por lo que debería usar build-tools 21.0.2 en su lugar (aunque esa versión aún no aparece en la página de revisiones ).
Recientemente probé la nueva función de cobertura de código Jacoco para Android Gradle plugin, y desafortunadamente hace que mis pruebas fallen con el siguiente error:
java.lang.VerifyError: com/foo/bar/rest/SomeClass at
com.foo.bar.test.rest.BaseTest.setUp(BaseTest.java:87) at
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190) at
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175) at
android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at
android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
Permití la cobertura del código usando estas líneas en build.gradle:
buildTypes {
debug {
testCoverageEnabled = true
}
...
¿Alguien ha encontrado el mismo problema?
Me encontré con este mismo problema, pero encontré esta solución: agregue -noverify a su archivo de gradle así:
testOptions {
unitTests {
all {
// configure the test JVM arguments
jvmArgs ''-noverify''
}
}
}
Fuente: https://github.com/robolectric/robolectric-gradle-plugin/issues/144
Recibirá un java.lang.VerifyError
cualquier momento que haya una inconsistencia entre la biblioteca utilizada durante la compilación y el tiempo de ejecución.
Aquí hay otro hilo que enumera un problema similar: Java.lang.verifyerror ¿cómo puedo solucionar o incluso averiguar la causa raíz?