使用testCoverageEnabled = true运行Androidtesting时发生java.lang.VerifyError

我最近尝试了Android Gradle插件的新Jacoco代码覆盖function,不幸的是,这使得我的testing失败,出现以下错误:

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) 

我在build.gradle中使用这些行启用了代码覆盖:

  buildTypes { debug { testCoverageEnabled = true } ... 

有没有人遇到同样的问题?

Solutions Collecting From Web of "使用testCoverageEnabled = true运行Androidtesting时发生java.lang.VerifyError"

将@ ben75的评论变成一个答案: 相应的错误已经修复了build-tools 21.0.0 。 但是,该版本引入了另一个特定于Windows的错误 ,因此您应该使用build-tools 21.0.2(即使该版本尚未显示在修订页面上 )。

我遇到了同样的问题,但发现这个解决scheme:添加-noverify到你的gradle文件,如下所示:

 testOptions { unitTests { all { // configure the test JVM arguments jvmArgs '-noverify' } } } 

来源: https : //github.com/robolectric/robolectric-gradle-plugin/issues/144

编译和运行期间使用的库之间不一致时,您将收到一个java.lang.VerifyError

这是另一个列出类似问题的线程: Java.lang.verifyerror如何修复甚至找出根本原因?