使用Gradle构建Kotlin项目有时会导致NoClassDefFoundError失败
我不能可靠地重现这个问题,因为它是零星的。 这是我用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 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 --no-daemon --parallel
- 我在Docker和我的本地机器上尝试了这一点(这甚至发生在CI服务器上)
- 这个错误是完全零星的,我无法查明原因
- 它也发生在单个和多个模块项目上
- 删除
--parallel
或添加 –--parallel
选项没有帮助 - 我正在使用Gradle
4.2
可能是什么问题呢?
这是Kotlin的一个已知问题 。 不幸的是在这个时候,我们不知道究竟是什么原因造成的。
- 将Kotlin添加到现有Java项目会打破Android Studio gradle消息错误
- 编译Groovy和Kotlin?
- TreeWalker检查不与Kotlin / Gradle一起工作?
- Kotlin在Android Studio 3.0 Canary 2中使用Android DataBinding
- 使用kotlin的自定义风格中的ClassNotFoundException
- Kotlin 1.2.10和Java 9对自动模块有相反的规定吗?
- 我怎样才能把一个groovy任务gradle转换成Gradle Kotlin DSL来生成一个pom.xml?
- 从TeamCity 10中的多个Gradle构建步骤收集和聚合jacoco结果
- 包含gradle脚本kotlin文件的IntelliJ自动完成