2024年5月21日,Kotlin 2.0.0 版本已发布,新的 Kotlin K2 编译器已稳定。这里简要介绍一下我在我的 Android 项目为了迁移到 Kotlin 2.0 进行的更改。
以下几个简单步骤可确保顺利迁移:
确保使用的是最新版本的 Android Studio 和 Kotlin 插件,以避免兼容性问题。
1. 将版本信息和插件添加到 Version Catalog 文件
此步骤涉及更新项目的libs.versions.toml文件以包含必要的Kotlin和Compose 编译器版本。
[versions]
kotlin = "2.0.0"
[plugins]
org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
2. 修改根目录的 Gradle 文件
在根目录的 build.gradle.kts
文件中添加 Compose Compiler 插件。
plugins {
alias(libs.plugins.compose.compiler) apply false
}
3. 删除旧版本的 Compose Compiler
指定旧版本 Compose 编译器的 Compose Options 选项 kotlinCompilerExtensionVersion
不再需要,在根目录的 build.gradle.kts
文件中将它删除。
android {
// 删除旧版本的 Compose 编译器
// composeOptions { kotlinCompilerExtensionVersion = "1.5.14" }
}
4. 在使用 Compose 的模块中应用 Compose Compiler
每个使用 Jetpack Compose 的模块都需要明确地应用 Compose 编译器插件。
plugins {
alias(libs.plugins.compose.compiler)
}
5. 添加 .gitignore 文件
Kotlin 2.0 引入了一个新的构建输出目录:*.kotlin
,*需要将其添加到 .gitignore 文件中
# Kotlin 2.0
.kotlin/
6. 配置 Compose Compiler(可选)
可选的 Compose 编译器配置,例如启用 enableStrongSkippingMode
。在使用 Compose 的模块的 build.gradle.kts
文件中配置
android {
//...
composeCompiler {
enableStrongSkippingMode = true
includeSourceInformation = true
}
}
7. 更新 Compose Compiler 依赖项(可选)
如果在项目构建设置中直接引用 Compose 编译器,而不是使用 AGP (Android Gradle Plugin) 来应用 compose 编译器插件。这种情况需要使用 Kotlin 存储库中的新依赖项替换旧的 Compose 编译器依赖项。
dependencies {
// 删除旧的 Compose Compiler 依赖项
// implementation("androidx.compose.compiler:compiler")
// implementation("androidx.compose.compiler:compiler-hosted")
// 添加新的依赖项
implementation("org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable:2.0.0")
implementation("org.jetbrains.kotlin:kotlin-compose-compiler-plugin:2.0.0")
}
其他
What's new in Kotlin 2.0.0
Jetpack Compose compiler moving to the Kotlin repository
K2 compiler migration guide