从Kotlin 1.3.31升级-> 1.3.40破坏了Android版本

时间:2019-06-22 18:34:08

标签: android gradle kotlin

如果我尝试在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有麻烦。是否需要添加一些新的依赖项或需要应用的插件?

2 个答案:

答案 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'
             ...
        }
    
  • 我在模块build.gradle中的
  • 应用了插件:'kotlin-android' 在应用插件之前:'kotlin-android-extensions'

希望它也适用于其他人。