本页介绍了 Navigation SDK 的 Kotlin 版本兼容性,并提供了迁移到较新版本的指南。
Navigation SDK Kotlin 版本要求
下表列出了最新版 Navigation SDK 的 Kotlin 版本要求以及推荐的 AGP 和 Gradle 版本。
| Navigation SDK 版本 | Kotlin 版本(必需) | Android Gradle 插件 (AGP) 和 Gradle 版本(推荐) |
|---|---|---|
| 7.3+ | 2.2.10 |
|
| 6.3 - 7.2 | 2.1 |
|
| 6.0 - 6.2 | 2.0 |
|
| 5.1 - 5.99.1 | 1.9 | 我们建议使用 AGP 7.3+,其中包含针对 JDK-8272564 的解决方法。 |
Kotlin 版本兼容性
Kotlin 2.2 支持与 Kotlin 2.1 向后兼容。这意味着,如果您已将 Kotlin 2.1 与 Navigation SDK 搭配使用,则应该能够升级到 Kotlin 2.2,而无需解决所有破坏性更改。 不过,这仅适用于稳定的语言 功能。 如果您在 Kotlin 语言中使用的是 Alpha 版、Beta 版或实验性功能,则在升级时可能需要进行其他更改。
简化过渡:Kotlin 兼容性标志
Kotlin 提供了两个标志来帮助限制破坏性更改: https://kotlinlang.org/docs/compatibility-modes.html
language-version X.Y
此标志会将破坏性更改恢复为之前 Kotlin 版本的行为。
例如,如果您使用的是 Kotlin 2.1,则可以指定 [ -
language-version 2.1],这样新的破坏性更改将不再生效:
android {
kotlinOptions {
languageVersion = '2.1'
}
}
api-version X.Y
当使用 Kotlin 版本中比 apiVersion 新的 API 时,此标志会抛出 Gradle build 错误。
android {
kotlinOptions {
apiVersion = '2.1'
}
}
更具针对性的方法
除了使用 Kotlin 兼容性标志之外,我们还建议您查看 Kotlin 版本说明,并选择要从升级前的版本中保留的行为。Kotlin 在每个版本的兼容性指南中都提供了一个破坏性更改列表,以及可用于保留原始行为的标志:
未来的 Kotlin 升级
Kotlin 每 6 个月 发布一个新版本(即语言版本),而 Google 通常会在 1-2 个月后将最新版本作为默认版本纳入我们的 产品中。之前的 Kotlin 版本包含破坏性更改,这些更改要求 Navigation SDK 客户升级到较新版本。因此,我们建议您在采用最新 Navigation SDK 版本时,每 6 个月规划一次 Kotlin 升级。