由于java,安卓无法运行gradle测试任务。lang.NoClassDefFoundError:jdk/internal/reflect/GeneratedSerializationConstructorAccessor1
我有一个安卓项目,我不能再在本地运行所有的测试gradle任务(在这个项目中我有3种不同的风格)。在任务失败之前,我有50次此错误消息。我用Gitlab CI/CD远程运行这些任务没有问题,我在本地有另一个项目,我也没有这个问题
java.lang.NoClassDefFoundError: jdk/internal/reflect/GeneratedSerializationConstructorAccessor1
at jdk.internal.reflect.GeneratedSerializationConstructorAccessor1.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.io.ObjectStreamClass.newInstance(ObjectStreamClass.java:1092)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2150)
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1668)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:482)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:440)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.deserializeWorker(SystemApplicationClassLoaderWorker.java:153)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:121)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
# 1 楼答案
这是一个老问题,但对于未来的谷歌搜索者和可能解决这一问题的感兴趣的各方来说,值得一提的是,如果您正在使用一种更流行的步行方式来设置JaCoCo+Robolectric+Espresso-https://medium.com/@rafael_toledo/setting-up-an-unified-coverage-report-in-android-with-jacoco-robolectric-and-espresso-ffe239aaf3fa。请添加以下内容:
就我而言:
# 2 楼答案
在这种情况下,即使您的JAVA_主页是在bash_配置文件中设置的,您也需要在Android中设置,以便: 转到文件->;项目结构->;SDK位置 设置JDK位置
有时,它可能位于与bash_profile one不同的位置
请参阅屏幕截图以供参考
# 3 楼答案
感谢@Tungken
我不得不把它添加到
testOptions { unitTests.all { jacoco {