Android Gradle 插件 (AGP) 以及 D8 和 R8 编译器与 Kotlin 1.3 及更高版本的类文件兼容。
D8 和 R8 编译器从 2.1.86 版本(包含在 AGP 4.1 中)开始支持 Kotlin 1.3 版本的类文件。对于 Kotlin 1.4 及更高版本的类文件,每个 Kotlin 版本都有最低要求的 AGP、D8 和 R8 版本。
下表显示了每个 Kotlin 版本所需的最低 AGP、D8 和 R8 版本。请注意,AGP 捆绑了 D8 和 R8,因此所需的 D8 和 R8 版本仅在使用 AGP 之外的 D8 和 R8 或覆盖捆绑版本时才相关。
Kotlin 版本 | 所需 AGP 版本 | 所需 D8 和 R8 版本 |
---|---|---|
1.3 | 4.1 | 2.1.86 |
1.4 | 7.0 | 3.0.76 |
1.5 | 7.0 | 3.0.77 |
1.6 | 7.1 | 3.1.51 |
1.7 | 7.2 | 3.2.47 |
1.8 | 7.4 | 4.0.48 |
1.9 | 8.0 | 8.0.27 |
2.0 | 8.5 | 8.5.10 |
2.1 | 8.6 | 8.6.17 |
2.2 | 8.10 | 8.10.21 |
表中列出的 AGP 版本会自动使用指定的 D8 和 R8 编译器版本。
使用 Java 8+ API 脱糖需要 AGP 7.0 版本(以及 D8 和 R8 3.0.76 版本)。R8 只能发出 Kotlin 1.4 及更新版本的元数据。当使用 R8 缩减包含 Kotlin 1.3 元数据的 Kotlin 库时,元数据会转换为 Kotlin 1.4 格式。对于 Kotlin 1.4 及更高版本,R8 会保留版本。