获取带有测试覆盖率和gradle插件3.0.0的java.lang.NoClassDefFoundError

时间:2017-05-19 18:37:51

标签: android gradle android-gradle jacoco

我正在尝试将我的应用更新为新的Android gradle插件3.0.0-alpha1。我已经通过了https://developer.android.com/studio/preview/features/new-android-plugin-migration.html的迁移指南,据我所知,一切都是正确的。我三倍检查了这个。

我的项目设置非常简单我的lib2取决于lib1。一切顺利进行,直到代码覆盖发挥作用。 lib1中的所有测试都没有问题,但lib2中来自lib1的代码中的测试引发了着名的异常:

java.lang.ClassNotFoundException: org.jacoco.agent.rt.internal_773e439.Offline

来自lib2的所有其他测试都没有遇到任何问题。

我已尝试过在网络上找到的所有解决方案。从强制两个lib的jacoco版本。使用随android插件打包的那个。使用独立的jacoco插件。从代码覆盖中排除有问题的类。将测试移动到单独的模块,这会在给定的异常情况下产生更多的故障。似乎每次图书馆依赖另一个图书馆时都会失败。

最奇怪的是,解压缩jacoco代理会显示该类实际存在 - 对于两个库。

有没有人遇到过这个问题而且有解决方案?谢谢

1 个答案:

答案 0 :(得分:0)

这是由于Jacoco版本0.7.6.201602180812上的错误引起的。

另一篇文章的参考:

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_14f7ee5/Offline