簡體   English   中英

從 Kotlin 1.3.31 升級 -> 1.3.40 破壞 Android 構建

[英]Upgrade from Kotlin 1.3.31 -> 1.3.40 breaks Android build

如果我嘗試在我的 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 構建良好。 我還嘗試將我的 com.android.tools.build 版本從 3.4.0 -> 3.4.1 升級,但沒有區別。

該錯誤清楚地表明,很難找到 Kotlin STL。 是否有一些我需要添加的新依賴項或我需要應用的插件?

這種行為是最近修復的問題https://youtrack.jetbrains.com/issue/KT-19227的結果。 以前,當編譯模塊不依賴 Kotlin stdlib 時,一些內置聲明(如kotlin.Unit是從編譯器內部加載的。 目前,這種情況會導致構建失敗,這是一種不那么令人驚訝的行為。

要再次編譯您的項目,請在您的android子項目中添加implementation(kotlin("stdlib"))依賴項。

我不知道它是否對某人有幫助,我有類似的問題,但是從 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 中,我在 apply plugin: 'kotlin-android-extensions' 之前放置了 apply plugin: 'kotlin-android'

希望它也適用於其他人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM