适配Android SDK 31的Jetpack Compose依赖版本配置求助
适配Android SDK 31的Jetpack Compose依赖版本配置求助
我完全懂你这种头疼的情况——用最新版Android Studio创建低版本SDK的Jetpack Compose项目时,自动生成的依赖版本往往会和目标SDK不兼容,尤其是Compose的BOM(物料清单)版本对编译SDK有明确要求,你遇到的报错就是因为默认的BOM版本需要编译SDK33及以上,而你指定的是31。
下面给你一套经过验证的、适配SDK31的依赖配置方案,直接替换你的libs.version.toml内容即可:
[versions] agp = "7.4.3" kotlin = "1.8.21" coreKtx = "1.9.0" junit = "4.13.2" junitVersion = "1.1.5" espressoCore = "3.5.1" lifecycleRuntimeKtx = "2.5.1" activityCompose = "1.6.1" composeBom = "2023.03.00" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } junit = { group = "junit", name = "junit", version.ref = "junit" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" } androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } androidx-ui = { group = "androidx.compose.ui", name = "ui" } androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
关键调整说明:
- AGP版本:把默认的8.11.0降到7.4.3,因为AGP 8.x系列要求编译SDK至少33,而7.4.x完美支持SDK31。
- Kotlin版本:换成1.8.21,这个版本和Compose BOM 2023.03.00是严格匹配的(Compose和Kotlin版本绑定,必须对应)。
- Compose BOM:使用2023.03.00,这个版本的Compose库支持最低SDK21,且编译SDK要求为31,完全符合你的需求。
- 其他依赖:同步降低了
lifecycle-runtime-ktx和activity-compose的版本,确保它们和AGP、Compose版本兼容。
额外检查步骤:
- 打开模块级的
build.gradle.kts(或build.gradle),确认以下配置:android { compileSdk = 31 defaultConfig { targetSdk = 31 // 如果你的手机是Android12,minSdk可以设为31,或者更低(比如21) minSdk = 31 } } - 点击Android Studio右上角的Sync Project with Gradle Files按钮同步项目。
- 如果还是有缓存问题,执行
File -> Invalidate Caches... -> Invalidate and Restart清理缓存后重启AS。
这样调整后,你的项目应该就能正常编译,适配你的Redmi Note 9(Android12/SDK31)了。
内容来源于stack exchange
相关产品推荐
相关产品推荐

