Android 消费者 SDK 3.0 迁移指南

迁移到 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 模式

消费者 SDK v3 及更低版本不支持 Full 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 在每个版本的兼容性指南中提供了一份重大变更列表,以及可用于保留原始行为的标志: