迁移到 Kotlin 2.0
如果您使用的是适用于 Android 3.0 及更高版本的 Consumer SDK,则必须升级到 Kotlin 2.0。本页提供了一些指南,可帮助您轻松过渡到新版 Kotlin。
Gradle 和 AGP 兼容性
Kotlin 2.0 对 Gradle 和 Android Gradle 插件 (AGP) 版本的最低和最高版本要求。确保您的项目符合 Kotlin 2.0 的以下要求。
适用于消费者 SDK 3.0 及更高版本的最低 AGP 版本
消费者 SDK 3.0 需要使用 AGP 7.3 或更高版本。
完整 R8 模式
消费者 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 在每个版本的兼容性指南中提供了一系列破坏性更改以及可设置为保留原始行为的标志: