如何在你的Android工程中启用K2编译器?
K2编译器是用于Kotlin代码编译的最新、高效编译器,你现在可以尝试使用了。
Kotlin编译器正在为Kotlin 2.0进行重写,新的编译器实现(代号K2)带来了显著的构建速度改进,编译Kotlin代码的速度比原始编译器快了两倍。它还具有更灵活的架构,允许在2.0之后引入新的语言功能。
尝试新的编译器
Kotlin 1.9引入了K2新编译器的Beta版本,适用于JVM目标,包括Android项目。为了帮助稳定新编译器并确保准备好迎接Kotlin 2.0,我们鼓励您尝试使用新编译器编译您的项目。如果遇到任何问题,可以在Kotlin问题跟踪器上报告它们。
要尝试新编译器,请更新到Kotlin 1.9,并将以下内容添加到项目的gradle.properties
文件中:
kotlin.experimental.tryK2=true
请注意,新编译器目前不应用于生产构建。早期尝试的一个好方法是在项目中创建一个单独的分支以使用K2进行编译。您可以在Now in Android存储库中找到一个示例。
支持K2的工具
依赖Kotlin编译器前端的插件和工具也必须更新以支持K2。一些工具已经具有用于使用K2构建的实验性支持:Jetpack Compose编译器插件从1.5.0开始支持K2,与Kotlin 1.9兼容。
Android Lint从8.2.0-alpha12版本开始支持K2。要在K2上运行Lint,请升级到此版本并将android.lint.useK2Uast=true
添加到您的gradle.properties文件中。请注意,任何依赖于旧前端API的自定义Lint规则都必须更新以使用分析API。
在其他工具中添加对K2的支持仍在进行中:KSP和KAPT任务在使用K2构建项目时目前仍会回退到使用旧编译器。但是,当使用这些工具时,编译任务仍可以使用K2运行。
Android Studio还依赖于Kotlin编译器进行代码分析。在Android Studio支持K2之前,使用K2进行构建可能会导致在某些边缘情况下IDE的代码分析与命令行构建之间存在一些差异。
如果您使用任何额外的编译器插件,请检查它们的文档,以查看它们是否已与K2兼容。
立即开始使用K2编译器
立即尝试K2编译器
Kotlin 2.0编译器带来了显著的改进,有助于更快地发布更新、提高生产力,并将更多精力投入到使您的应用独特的方面。它已经与Jetpack Compose兼容,我们还计划在其他工具(包括Android Studio、KSP和编译器插件)中提供更好的支持。现在是时候在您的应用代码中尝试它,并提供与Kotlin、Compose或Lint相关的反馈意见。