欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Android 问题01_AGP_Kotlin_Compiler_Mapping

Android 问题01_AGP_Kotlin_Compiler_Mapping

2025/2/11 17:10:19 来源:https://blog.csdn.net/snowgeneral/article/details/145497429  浏览:    关键词:Android 问题01_AGP_Kotlin_Compiler_Mapping

Android 问题01_AGP_Kotlin_Compiler_Mapping

Android 从支持 Kotlin 开始,从 AGP 到需要同时分析 AGP 与 Kotlin Compiler 版本对应关系,因此多数较新的库都是 Kotlin 语言开发的。

下面讲的例子是对已经存在的项目作改造过程中发生的问题,如果配置与你的不同,按你的原有配置为准,将对应的版本调整即可。因为不同版本的 Android Studio 创建 Project 时,创建的项目结构文件的内容会存在差异。


在遇到类似下面的提示

This version (1.5.1) of the Compose Compiler requires Kotlin version 1.9.0 but you appear to be using Kotlin version 1.9.24 which is not known to be compatible.  Please consult the Compose-Kotlin compatibility map located at https://developer.android.com/jetpack/androidx/releases/compose-kotlin to choose a compatible version pair (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!).

这说明 Kotlin Compiler 版本与支持的最低的 Kotlin 语言不符合,与 问题00 一样。

造成这个问题的原因可能是因为依赖项内的库版本较高,用于开发的 Kotlin 语言版本与当前使用 Kotlin Compiler 版本不一致。

这次遇到的问题就是因为修改了 androidx.navigation:navigation-fragment androidx.navigation:navigation-ui 版本从 2.7.7 -> 2.8.5,在构建(build)时出现上上面的提示。

原来的版本

AGPKotlin CompilerKotlinandroidx.navigation:navigation-fragment
androidx.navigation:navigation-ui
BoM
8.2.21.5.11.9.02.7.72023.09.01
// root project build.gradle
buildscript {// ...dependencies {classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.7.7"classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"// ...}// ...
}plugins {id "com.android.application" version "8.2.2" apply falseid "com.android.library" version "8.2.2" apply falseid 'org.jetbrains.kotlin.android' version '1.9.0' apply false// ...
}// app/build.gradle
android {// ...composeOptions {kotlinCompilerExtensionVersion = "1.5.1"}// ...
}dependencies {implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"implementation platform('androidx.compose:compose-bom:2023.09.01')// ...
}// sdk/build.gradle
android {// ...composeOptions {kotlinCompilerExtensionVersion = "1.5.1"  // Kotlin Compiler}// ...
}dependencies {// ...implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"  // Kotlin...
}


版本调整

AGPKotlin CompilerKotlinandroidx.navigation:navigation-fragment
androidx.navigation:navigation-ui
BoM
8.2.21.5.141.9.242.8.52024.09.01

为了使用较新的库的特性,调整 Kotlin Compiler 版本,保持 2.8.5 的版本。

// root project build.gradle
buildscript {// ...dependencies {classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.8.5"classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24"// ...}// ...
}plugins {id "com.android.application" version "8.2.2" apply falseid "com.android.library" version "8.2.2" apply falseid 'org.jetbrains.kotlin.android' version '1.9.24' apply false// ...
}// app/build.gradle
android {// ...composeOptions {kotlinCompilerExtensionVersion = "1.5.14"}// ...
}dependencies {implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.24"implementation platform('androidx.compose:compose-bom:2024.09.01')implementation 'androidx.activity:activity-compose:1.9.2'// ...
}// sdk/build.gradle
android {// ...composeOptions {kotlinCompilerExtensionVersion = "1.5.14"  // Kotlin Compiler}// ...
}dependencies {// ...implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.24"  // Kotlinimplementation platform('androidx.compose:compose-bom:2024.09.01')...
}

[1] Compose 与 Kotlin 的兼容性对应关系

[2] KGP 与 Gradle 对应关系

[3] BOM 与库版本对应表

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com