升级cordova-android 12后构建失败:minSdkVersion版本冲突求助
升级Cordova-Android到12版本后,即便在config.xml中设置了android-minSdkVersion=24,构建仍提示minSdkVersion 19低于依赖库要求的21,大概率是配置被某个环节覆盖,按以下步骤排查修复:
检查插件硬编码的minSdk配置
部分Cordova插件(尤其是依赖androidx.core:core-splashscreen的启动页类插件)会在自身plugin.xml中强制设置minSdkVersion。遍历项目plugins目录下所有插件的plugin.xml,搜索<uses-sdk>或<preference name="android-minSdkVersion"标签,将其中低于21的数值改为24,或者直接升级该插件到适配Cordova-Android 12的最新版本。临时修正Android平台build.gradle
进入项目路径platforms/android/app/build.gradle,找到defaultConfig块,手动修改minSdkVersion为24:defaultConfig { minSdkVersion 24 // 其他配置项... }注意:该修改会在移除并重新添加Android平台时被覆盖,建议仅作为临时方案,同时排查根源问题。
排查全局/项目级Gradle配置
检查项目根目录的gradle.properties,或全局Gradle配置文件(通常在~/.gradle/gradle.properties),确认是否存在android.minSdkVersion这类全局配置项,若有则修改为24。完善config.xml的Android平台配置
Cordova-Android 12要求minSdkVersion至少为21,确保config.xml中Android平台配置完整,同时指定目标SDK版本:<platform name="android"> <preference name="android-minSdkVersion" value="24" /> <preference name="android-targetSdkVersion" value="33" /> <!-- 其他平台配置... --> </platform>清理缓存后彻底重建项目
执行以下命令清理残留缓存并重新构建:cordova clean rm -rf platforms plugins cordova platform add android@12 cordova plugin add 你的插件列表 cordova build android
完整错误信息参考:
Task :app:processDebugMainManifest FAILED
C:\www\cordova\app\platforms\android\app\src\main\AndroidManifest.xml Error:
uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library [androidx.core:core-splashscreen:1.0.0]
C:\Users\user.gradle\caches\transforms-3\8fa35d5508191c4f9f8ca09de1273d1b\transformed\jetified-core-splashscreen-1.0.0\AndroidManifest.xml
as the library might be using APIs not available in 19
Suggestion: use a compatible library with a minSdk of at most 19, or increase this project's minSdk version to at least 21, or use tools:overrideLibrary="androidx.core.splashscreen" to force usage (may lead to runtime failures)FAILURE: Build failed with an exception.
- What went wrong:
Execution failed for task ':app:processDebugMainManifest'.Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared in library [androidx.core:core-splashscreen:1.0.0]
C:\Users\user.gradle\caches\transforms-3\8fa35d5508191c4f9f8ca09de1273d1b\transformed\jetified-core-splashscreen-1.0.0\AndroidManifest.xml
as the library might be using APIs not available in 19
Suggestion: use a compatible library with a minSdk of at most 19, or increase this project's minSdk version to at least 21, or use tools:overrideLibrary="androidx.core.splashscreen" to force usage (may lead to runtime failures)
内容的提问来源于stack exchange,提问作者pjknight

