【问题标题】:Building Kotlin projects with Gradle sometimes fails with NoClassDefFoundError使用 Gradle 构建 Kotlin 项目有时会因 NoClassDefFoundError 而失败
【发布时间】:2018-03-20 18:33:50
【问题描述】:

我无法可靠地重现此问题,因为它是零星的。这是我使用 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 或添加 --daemon 选项无济于事
  • 我正在使用 Gradle 4.2

可能是什么问题?

【问题讨论】:

  • Gradle 版本?
  • 您能在此处发布您的依赖项列表及其版本吗?
  • 我更新了我的问题。我的依赖无关紧要,因为这发生在各种 Kotlin 项目中。
  • @AdamArold 如果您对两个 Kotlin 依赖项使用不同版本的 Kotlin,这很重要
  • 请至少提供 Kotlin gradle 插件的版本。

标签: java gradle kotlin


【解决方案1】:

这是known issue with Kotlin。不幸的是,目前我们不知道究竟是什么原因造成的。

【讨论】:

    【解决方案2】:

    此问题的原因与使用两个或多个不同的 Kotlin 版本有关。就我而言,我使用 Android Studio 3 和 IntelliJ IdeaU 2017。我使用的解决方案是:

    • 在任一 IDE 中检查您的 Kotlin 版本。在这种情况下,您应该将 Kotlin 的编译器更新为相同的版本。

    • 如果您只使用一个 IDE,最好的解决方案是删除您的 IDE 和所有缓存。

    更多信息请参考Kotlin community

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多