Android 消费者 SDK 3.0 迁移指南

迁移到 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 最低版本

需要使用 AGP 7.3 或更高版本才能使用 Consumer SDK 3.0。

完整 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 在每个版本的兼容性指南中提供了一系列破坏性更改以及可设置为保留原始行为的标志: