在android上使用jacoco coverage时出现验证错误
在android上使用jacoco coverage时出现验证错误,android,code-coverage,android-gradle-plugin,Android,Code Coverage,Android Gradle Plugin,gradle connectedCheck仅当覆盖范围正在执行我的POJO对象时,我才可以正常工作。当它开始接触模拟对象或说,MyContentProvider Extendes ContentProvider即将被测试实例化时,我收到VerifyError 06-06 13:27:05.664 E/AndroidRuntime( 2443): java.lang.VerifyError: com/myapp/contentprovider/EthanContentProvider 06
gradle connectedCheck
仅当覆盖范围正在执行我的POJO对象时,我才可以正常工作。当它开始接触模拟对象或说,MyContentProvider Extendes ContentProvider
即将被测试实例化时,我收到VerifyError
06-06 13:27:05.664 E/AndroidRuntime( 2443): java.lang.VerifyError: com/myapp/contentprovider/EthanContentProvider
06-06 13:27:05.664 E/AndroidRuntime( 2443): at java.lang.Class.newInstanceImpl(Native Method)
06-06 13:27:05.664 E/AndroidRuntime( 2443): at java.lang.Class.newInstance(Class.java:1208)
06-06 13:27:05.664 E/AndroidRuntime( 2443): at android.app.ActivityThread.installProvider(ActivityThread.java:4778)
06-06 13:27:05.664 E/AndroidRuntime( 2443): at android.app.ActivityThread.installContentProviders(ActivityThread.java:4385)
在深入挖掘之后,我的理解是,问题在于试图从设备的framework.jar中匹配存根SDK ContentProvider和real。
Jacoco在预处理类时,将方法指针添加到它在执行期间重复使用的文件(.em文件)中
有什么建议/想法吗
关于问题布局样式,很抱歉。请随意编辑。这似乎是jacoco库的错误/问题,我在不同的环境中遇到了相同的错误。我目前的“解决方案”是将类方法的可见性从private设置为protected或package。还有一篇很好的博客文章详细解释了这个问题。另一种可能的解决方案似乎是使用旧的JDK1.5。还有一张虫子票,非常感谢你的建议!!!我编译了选项{sourceCompatibility JavaVersion.VERSION_1_5 targetCompatibility JavaVersion.VERSION_1_5},现在我已经完全生成了覆盖率报告。))