Var*_*A M 2 android android-testing android-studio android-unit-testing
未收到测试事件错误:
将 android studio 更新到 ArticFox 后运行单元测试时出现 NoClassDefFoundError | 2020年3月1日。
以下是完整的错误:
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:2180)
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:493)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:451)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:122)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:68)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:73)
Caused by: java.lang.ClassNotFoundException: jdk.internal.reflect.GeneratedSerializationConstructorAccessor1
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 11 more
Run Code Online (Sandbox Code Playgroud)
我刚刚下载了最新的 android studio,克隆了一个项目并尝试运行单元测试。
我怎样才能解决这个问题?我正在使用嵌入式 JDK(Java 11.0)。
这是由于jacoco而发生的。最新的 android studio 附带了 Java 11,但我们使用的是 Java 9。进行以下更改修复了该问题。
jacoco { includeNoLocationClasses = true }
Run Code Online (Sandbox Code Playgroud)
到
jacoco {
includeNoLocationClasses = true
excludes = ['jdk.internal.*']
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3202 次 |
| 最近记录: |