如果我尝试在Gradle项目中升级到最新的Kotlin版本,则在构建Android子项目时会遇到以下错误:
e: /(redacted)/AndroidLauncher.kt: (8, 15): Cannot access built-in declaration 'kotlin.Unit'. Ensure that you have a dependency on the Kotlin standard library
降级到1.3.31就可以了。我还尝试了从3.4.0-> 3.4.1升级com.android.tools.build版本,但没有区别。
该错误非常清楚地表明,找不到Kotlin STL有麻烦。是否需要添加一些新的依赖项或需要应用的插件?
答案 0 :(得分:2)
此行为是最近解决的问题https://youtrack.jetbrains.com/issue/KT-19227的结果。以前,当编译的模块不依赖Kotlin stdlib时,会从编译器内部加载一些内置声明,例如kotlin.Unit
。当前,这种情况会导致构建失败,这是一个不足为奇的行为。
要重新编译项目,请在implementation(kotlin("stdlib"))
子项目中添加android
依赖项。
答案 1 :(得分:0)
我不知道它是否可以为某人提供帮助,我有一个类似的问题,但是从1.3.40到1.3.61(不是从1.3.31到1.3.40);在我的情况下使用Android Studio可以解决此问题:
在project build.gradle中,我离开了kotlin版本1.3.61并放入gradle:3.5.0 而不是3.6.1无效。标题中有错误:
buildscript {
ext.kotlin_version = '1.3.61'
...
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
...
}
应用了插件:'kotlin-android' 在应用插件之前:'kotlin-android-extensions'
希望它也适用于其他人。