如何解决Android项目AAR元数据minCompileSdk版本不匹配错误
解决AAR元数据检查错误:依赖minCompileSdk高于项目compileSdkVersion的问题
方案1:升级项目compileSdkVersion(推荐)
这是最稳妥的解决方式,依赖库提升minCompileSdk通常是为了适配新API或遵循Android官方规范。
- 打开模块级的
build.gradle(或build.gradle.kts) - 将
compileSdkVersion(Kotlin DSL里是compileSdk)改成依赖要求的最高版本(比如34),同时建议同步升级targetSdkVersion:// Groovy写法 android { compileSdkVersion 34 defaultConfig { targetSdkVersion 34 // 其他配置不变 } }// Kotlin DSL写法 android { compileSdk = 34 defaultConfig { targetSdk = 34 // 其他配置不变 } } - 点击Sync Now同步Gradle,之后重新构建项目
方案2:降级冲突依赖的版本
如果暂时没法升级compileSdk,就找这些依赖的旧版本——要求minCompileSdk不超过31的:
- 比如Hilt的2.42及以下版本支持compileSdk 31,修改依赖声明:
implementation 'com.google.dagger:hilt-android:2.42' kapt 'com.google.dagger:hilt-compiler:2.42' - Navigation组件的2.5.3及以下版本适配31:
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3' implementation 'androidx.navigation:navigation-ui-ktx:2.5.3' - 注意:降级会丢失新版本的功能和bug修复,需要自己权衡
方案3:临时禁用元数据检查(不推荐)
如果前两种方案都走不通,可以临时关闭检查,但这可能埋下兼容性隐患:
- 在模块级构建文件里加这段配置:
// Groovy写法 android { configurations.all { resolutionStrategy { // 可选:强制用兼容的核心库版本 force 'androidx.core:core-ktx:1.7.0' // 也可以结合降级,指定冲突依赖的旧版本 eachDependency { details -> if (details.requested.group in ['androidx.hilt', 'androidx.navigation']) { details.useVersion '对应旧版本号' } } // 禁用元数据检查 disableDependencyVerification() } } }// Kotlin DSL写法 configurations.all { resolutionStrategy { force("androidx.core:core-ktx:1.7.0") eachDependency { if (requested.group in listOf("androidx.hilt", "androidx.navigation")) { useVersion("对应旧版本号") } } disableDependencyVerification() } }
额外注意
- 确保所有子模块的compileSdkVersion和主模块保持一致,别出现版本不匹配的情况
- 检查
gradle.properties里有没有android.compileSdkVersion的全局配置,有的话也要同步修改
内容的提问来源于stack exchange,提问作者Ankit Verma
相关产品推荐
相关产品推荐

