Java 使用Gradle构建Kotlin项目有时会因NoClassDefFoundError而失败
我不能可靠地重现这个问题,因为它是零星的。这就是我在使用Gradle构建Kotlin项目时得到的结果:Java 使用Gradle构建Kotlin项目有时会因NoClassDefFoundError而失败,java,gradle,kotlin,Java,Gradle,Kotlin,我不能可靠地重现这个问题,因为它是零星的。这就是我在使用Gradle构建Kotlin项目时得到的结果: Could not perform incremental compilation: Could not connect to Kotlin compile daemon Could not connect to kotlin daemon. Using fallback strategy. :myproj:compileKotlin FAILED 1 actionable task: 1 e
Could not perform incremental compilation: Could not connect to Kotlin compile daemon
Could not connect to kotlin daemon. Using fallback strategy.
:myproj:compileKotlin FAILED
1 actionable task: 1 executed
e: java.lang.NoClassDefFoundError: Could not initialize class kotlin.Unit
warning: the '-d' option with a directory destination is ignored because '-Xbuild-file' is specified
Exception in thread "Thread-25" java.lang.NoClassDefFoundError: Could not initialize class kotlin.Unit
at org.jetbrains.kotlin.compilerRunner.UtilsKt$runToolInSeparateProcess$readErrThread$1$1.invoke(utils.kt)
at kotlin.io.TextStreamsKt.forEachLine(ReadWrite.kt:154)
at org.jetbrains.kotlin.compilerRunner.UtilsKt$runToolInSeparateProcess$readErrThread$1.invoke(utils.kt:68)
at org.jetbrains.kotlin.compilerRunner.UtilsKt$runToolInSeparateProcess$readErrThread$1.invoke(utils.kt)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:18)
e: java.lang.NoClassDefFoundError: Could not initialize class kotlin.Unit
...
我使用以下选项运行Gradle
gradle-assemble—无守护进程—并行
- 我在Docker和我的本地机器上也尝试过这一点(这甚至在CI服务器上也发生过)
- 这个错误是完全偶然的,我无法找出原因
- 单模块和多模块项目也会出现这种情况
- 删除
或添加--parallel
选项没有帮助--daemon
- 我使用的是Gradle
4.2
可能是什么问题?这是一个问题。不幸的是,目前我们还不知道到底是什么原因造成了这个问题。这个问题的原因与使用两个或多个不同的Kotlin版本有关。就我而言,我使用Android Studio 3和IntelliJ IdeaU 2017。我使用的解决方案是:
- 在任一IDE中检查Kotlin版本。在这种情况下,您应该将Kotlin的编译器更新为相同的版本
- 如果只使用一个IDE,最好的解决方案是删除IDE和所有缓存
有关更多信息,请参阅。Gradle版本?能否在此发布您的依赖项列表及其版本?我更新了我的问题。我的依赖关系并不重要,因为所有类型的Kotlin项目都会发生这种情况。@AdamArold如果您为两个
Kotlin
依赖关系使用不同版本的Kotlin
则很重要请至少提供Kotlin gradle插件的版本。