java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_14f7ee5/Offline
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_14f7ee5/Offline
更新到 Gradle Build Tools 2.1.3 和 Gradle 2.14.1 后,我在 Android 项目中看到以下错误。当我 运行 应用程序时,它会立即发生。我该如何解决这个问题?
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_14f7ee5/Offline;
at com.ourapp.next.conversation.SomeList.SomeListViewModel.$jacocoInit(SomeListViewModel.java)
at com.ourapp.next.conversation.SomeList.SomeListViewModel.(SomeListViewModel.java)
at com.ourapp.next.conversation.SomeList.SomeListAdapterTest.(SomeListAdapterTest.java:26)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217)
at org.junit.runners.BlockJUnit4ClassRunner.runReflectiveCall(BlockJUnit4ClassRunner.java:266)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access[=10=]0(ParentRunner.java:58)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access[=10=]0(ParentRunner.java:58)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1853)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.jacoco.agent.rt.internal_14f7ee5.Offline" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.ourapp.next.debug.test-1/base.apk", zip file "/data/app/com.ourapp.next.debug-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
... 30 more
Suppressed: java.lang.ClassNotFoundException: org.jacoco.agent.rt.internal_14f7ee5.Offline
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 31 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
已提交错误报告:https://code.google.com/p/android/issues/detail?id=220640
这看起来是 jacoco 版本的问题。您需要将 jacocoversion 更新为 0.7.6.201602180812
。
引用问题:
The jacoco plugin version was bumped from 0.7.4.201502262128 to
0.7.6.201602180812 between 2.1.2 to 2.1.3 which is the likely cause of this issue.
In 2.2 it is 0.7.5.201505241946.
另外一个可能的错误似乎与 Google Play 服务有关。暂时有临时解决方法。
选项 1:注释掉 testCoverageEnabled true
。
buildTypes {
debug {
// testCoverageEnabled true
}
}
选项 2:使用 Instant 运行 似乎也可以解决这个问题。
对于在 运行 UI 使用 createDebugCoverageReport task
测试 jacoco 代码覆盖时遇到此错误的任何人
添加这个 jar 解决了这个问题
答案取自
我在 运行 UI 测试覆盖 android 库项目 和 android 应用程序项目时遇到此错误只是一切正常 android 图书馆项目正面临这个问题
我想我找到了解决这个问题的最佳方法。出于某种原因,默认情况下不会包含 jacoco-agent.jar 并且它具有无法找到的 Offline.class 。您只需要为代理添加依赖项。但是,请确保它与您正在使用的 jacoco 插件的版本完全相同,因为在提交哈希中找到了结束包 Offline.class。
这是我正在做的事情:
编译'org.jacoco:jacoco-maven-plugin:0.7.9'
编译'org.jacoco:org.jacoco.agent:0.7.9:runtime'
找了两天解决方案,终于找到了!
只需要添加这个依赖:
implementation "org.jacoco:org.jacoco.agent:0.8.7:runtime"
更新到 Gradle Build Tools 2.1.3 和 Gradle 2.14.1 后,我在 Android 项目中看到以下错误。当我 运行 应用程序时,它会立即发生。我该如何解决这个问题?
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_14f7ee5/Offline;
at com.ourapp.next.conversation.SomeList.SomeListViewModel.$jacocoInit(SomeListViewModel.java)
at com.ourapp.next.conversation.SomeList.SomeListViewModel.(SomeListViewModel.java)
at com.ourapp.next.conversation.SomeList.SomeListAdapterTest.(SomeListAdapterTest.java:26)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217)
at org.junit.runners.BlockJUnit4ClassRunner.runReflectiveCall(BlockJUnit4ClassRunner.java:266)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access[=10=]0(ParentRunner.java:58)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access[=10=]0(ParentRunner.java:58)
at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1853)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.jacoco.agent.rt.internal_14f7ee5.Offline" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.ourapp.next.debug.test-1/base.apk", zip file "/data/app/com.ourapp.next.debug-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
... 30 more
Suppressed: java.lang.ClassNotFoundException: org.jacoco.agent.rt.internal_14f7ee5.Offline
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 31 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
已提交错误报告:https://code.google.com/p/android/issues/detail?id=220640
这看起来是 jacoco 版本的问题。您需要将 jacocoversion 更新为 0.7.6.201602180812
。
引用问题:
The jacoco plugin version was bumped from 0.7.4.201502262128 to 0.7.6.201602180812 between 2.1.2 to 2.1.3 which is the likely cause of this issue.
In 2.2 it is 0.7.5.201505241946.
另外一个可能的错误似乎与 Google Play 服务有关。暂时有临时解决方法。
选项 1:注释掉 testCoverageEnabled true
。
buildTypes {
debug {
// testCoverageEnabled true
}
}
选项 2:使用 Instant 运行 似乎也可以解决这个问题。
对于在 运行 UI 使用 createDebugCoverageReport task
测试 jacoco 代码覆盖时遇到此错误的任何人添加这个 jar 解决了这个问题
答案取自
我在 运行 UI 测试覆盖 android 库项目 和 android 应用程序项目时遇到此错误只是一切正常 android 图书馆项目正面临这个问题
我想我找到了解决这个问题的最佳方法。出于某种原因,默认情况下不会包含 jacoco-agent.jar 并且它具有无法找到的 Offline.class 。您只需要为代理添加依赖项。但是,请确保它与您正在使用的 jacoco 插件的版本完全相同,因为在提交哈希中找到了结束包 Offline.class。 这是我正在做的事情:
编译'org.jacoco:jacoco-maven-plugin:0.7.9'
编译'org.jacoco:org.jacoco.agent:0.7.9:runtime'
找了两天解决方案,终于找到了! 只需要添加这个依赖:
implementation "org.jacoco:org.jacoco.agent:0.8.7:runtime"