【问题标题】:Android + Kotlin build error: Kotlin home does not exist or is not a directoryAndroid + Kotlin 构建错误:Kotlin home 不存在或不是目录
【发布时间】:2018-02-20 15:42:59
【问题描述】:

有时我在尝试编译我的 Android 应用程序时收到此错误:
e: Kotlin home 不存在或不是目录:
FAILURE:构建失败并出现异常。

在命令行 (./gradlew clean build) 和 Android Studio 3.0.1 中发生。我已经完成了 File -> Invalidate Caches / Restart,这并没有解决它。

我所有的 Kotlin src 都在 src/main/java 下,因为大部分代码仍然是 java。

有趣的版本/插件/依赖项:

ext.kotlinVersion = '1.2.21'
classpath 'com.android.tools.build:gradle:3.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'

compileSdkVersion 26
buildToolsVersion "26.0.3"
targetSdkVersion 26
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"

更新
找到问题的原因。我在不同版本的 Kotlin 上有多个 Android 应用程序。如果我构建一个应用程序,然后打开另一个应用程序并尝试构建它——kaboom! KotlinCompileDaemon 和 GradleDaemon 进程只针对一个 Kotlin 版本。解决方案是杀死 KotlinCompileDaemon 和 GradleDaemon 的这些进程。您可以使用下面提到的“killall java”,但这会杀死您可能不想要的所有 java 进程。

【问题讨论】:

  • 不只是 Kotlin。我在 Java 中也遇到过这种情况。人们似乎认为我们一次只使用一个版本.... 潜在有价值的工具,如“配置文件”(Netbeans)被新工具掩盖或重新发明。 configurations 可以帮助您的具体情况吗?
  • 你可以看问题这个答案参考:stackoverflow.com/questions/26422860/…

标签: android android-gradle-plugin kotlin


【解决方案1】:

您可以尝试两件事:

  1. 清理您的 Android Studio 缓存并重新启动。

  2. 杀死 KotlinCompileDaemonGradleDaemon 进程并重新启动 gradle:

    kill KotlinCompileDaemon
    kill GradleDaemon
    ./gradlew clean assemble
    

如果不随意发表评论,我希望这会有所帮助:)

【讨论】:

  • 感谢您的回答。我让我的Mac进入睡眠状态,5小时后回来,没有错误。不必杀死任何 java 进程,但下次出现问题时我会尝试!
  • 杀死进程有效!如果您可以编辑您的答案以删除“killall”,而只是杀死 KotlinCompileDaemon 和 GradleDaemon,我会接受您的答案。我只是不希望人们杀死他们所依赖的 java 进程。
  • 我很高兴它成功了!感谢您的更新,我已经编辑了答案
  • 考虑./gradlew --stop
猜你喜欢
  • 2021-10-29
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 2022-07-28
相关资源
最近更新 更多