Android + Kotlin 构建错误 : Kotlin home does not exist or is not a directory

标签 android android-gradle-plugin kotlin

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

发生在命令行 (./gradlew clean build) 和 Android Studio 3.0.1 中。我已经完成了文件 -> 使缓存无效/重新启动,但这并没有解决它。

我所有的 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 进程。

最佳答案

有两件事你可以尝试:

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

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

    kill KotlinCompileDaemon
    kill GradleDaemon
    ./gradlew clean assemble
    

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

关于Android + Kotlin 构建错误 : Kotlin home does not exist or is not a directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48888989/

相关文章:

java - Spinner 中的自定义行

android - 如何检测android中的短信删除?

android - Flutter build apk - 请更新您的 settings.gradle 文件

java - Android Studio 错误 :Class android. support.v4.hardware.display.DisplayManagerCompat 已添加到输出中。请删除重复的副本

xml - 尝试在 ANDROID 资源中使用 <!ENTITY,错误为 : "The entity was referenced, but not declared."

Android:包名用哪个? Manifest 的 packagename 或 Gradle applicationId?

android - Kotlin 中的 generateStubs 配置是什么?

java - 如何从 recyclerview onclick 打开新的 Intent

Spring Boot jar 由于缺少 ServletWebServerFactory bean 而无法启动 Web 服务器

java - IntelliJ "provided"范围的 Ant 等效项