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 模式

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