迁移到 Kotlin 2.0
如果您使用的是 Consumer SDK for Android 3.0 及更高版本,则必须升级到 Kotlin 2.0。本页面提供了相关指南,可帮助您轻松过渡到新的 Kotlin 版本。
Gradle 和 AGP 兼容性
Kotlin 2.0 对 Gradle 和 Android Gradle 插件 (AGP) 版本的最低版本和最高版本有要求 。请确保您的项目满足 Kotlin 2.0 的这些要求。
Consumer SDK 3.0 及更高版本的 AGP 最低版本
Consumer SDK 3.0 要求使用 AGP 7.3 及更高版本。
完整 R8 模式
Consumer SDK v3 及更低版本不支持完整 R8 模式。如果您的应用以 AGP 8.0 及更高版本为目标平台,则必须明确停用完整 R8 模式。
# settings.gradle
android.enableR8.fullMode=false
Kotlin 版本兼容性
Kotlin 支持与之前的 三个语言 版本向后兼容。 这意味着,如果您已将 Kotlin 1.7 及更高版本与 Consumer SDK 搭配使用,则应该能够升级到 Kotlin 2.0,而无需解决所有破坏性更改。不过,Kotlin 兼容性仅适用于稳定的语言 功能。 如果您在 Kotlin 语言中使用的是 Alpha 版、Beta 版或实验性功能,则在升级时可能需要进行其他更改。
Kotlin 兼容性标志
如上一部分所述,Kotlin 在升级时最多支持之前的 3 个语言版本。Kotlin 提供了两个标志来帮助限制 破坏性更改:
language-version X.Y
此标志会将 Kotlin 之前版本的行为恢复为破坏性更改。例如,如果您使用的是 Kotlin 1.7,则可以指定 [ -
language-version 1.7],这样新的破坏性更改将不再生效:
android {
kotlinOptions {
languageVersion = '1.7'
}
}
api-version X.Y
此标志可防止在依赖的下游代码准备好纳入 Kotlin 2.0 之前使用新的 API。
android {
kotlinOptions {
apiVersion = '1.7'
}
}
更具针对性的方法
除了使用 Kotlin 兼容性标志之外,我们还建议您查看 Kotlin 版本说明,并选择要从升级前的版本保留的行为。Kotlin 在每个版本的兼容性指南中都提供了重大变更列表以及可用于保留原始行为的标志: