Kotlin 版本相容性和遷移

本頁提供 Navigation SDK 的 Kotlin 版本相容性資訊,以及遷移至新版本的指引。

下表概略說明 Kotlin 版本需求,以及近期版本 Navigation SDK 的建議 AGP 和 Gradle 版本。

Navigation SDK 版本 Kotlin 版本 (必要) Android Gradle 外掛程式 (AGP) 和 Gradle 版本 (建議)
6.2 以上 2.1
  • AGP 8.7.3
  • Gradle 8.10.2
6.0 - 6.2 2.0
  • AGP 8.3.0
  • Gradle 8.4
5.1 - 5.99.1 1.9 建議您使用 AGP 7.3 以上版本,因為該版本有 JDK-8272564 的解決方法。

Kotlin 版本相容性

Kotlin 2.1 支援與 Kotlin 2.0 的回溯相容性。也就是說,如果您已使用 Kotlin 2.0 搭配 Navigation SDK,應該可以升級至 Kotlin 2.1,而無須解決所有重大變更。不過,這項規定僅適用於穩定的語言功能。如果您使用 Kotlin 語言中的 Alpha 版、Beta 版或實驗功能,則升級時可能需要進行其他變更。

順利過渡:Kotlin 相容性標記

Kotlin 提供兩個標記,可協助限制重大變更:https://kotlinlang.org/docs/compatibility-modes.html

language-version X.Y

這個標記會將破壞變更還原為舊版 Kotlin 的行為。舉例來說,如果您使用的是 Kotlin 2.0,可以指定 [ - language-version 2.0],這樣就不會再套用新的重大變更:

android {
   kotlinOptions {
       languageVersion = '2.0'
   }
}

api-version X.Y

當使用比 apiVersion 新版更高的 Kotlin 版本 API 時,這個標記會擲回 Gradle 建構錯誤。

android {
   kotlinOptions {
       apiVersion = '2.0'
   }
}

更精準的做法

除了使用 Kotlin 相容性標記之外,我們建議您查看 Kotlin 發布說明,並選擇要從要升級的版本保留哪些行為。Kotlin 在各個版本的相容性指南中,提供重大變更清單和可設定的標記,以便保留原始行為:

未來的 Kotlin 升級

Kotlin 會每 6 個月發布新版本 (即語言版本),而 Google 通常會在 1 至 2 個月後,將最新版本納入產品的預設版本。先前的 Kotlin 版本包含破壞性變更,因此 Navigation SDK 客戶必須升級至較新的版本。因此,建議您在採用最新的 Navigation SDK 版本時,每 6 個月進行一次 Kotlin 升級。