VSCode运行Flutter项目遇Manifest合并错误,求解决方案
解决Flutter中Manifest合并失败(minSdkVersion 16 < 19)的问题
以下是针对该问题的具体解决方案,按推荐优先级排序:
方案1:升级项目minSdkVersion至19(官方推荐)
这是最稳妥的解决方式,避免后续因API兼容问题导致运行时崩溃:
- 打开项目中的
android/app/build.gradle文件 - 找到
defaultConfig代码块,修改minSdkVersion的值为19:
defaultConfig { applicationId "com.your.app.package" minSdkVersion 19 // 将原16替换为19 targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName }
- 保存文件后,执行
flutter clean清除缓存,再重新运行flutter run
方案2:降级Firebase Analytics到兼容minSdk 16的版本
如果必须保留minSdk 16,可以选择适配低版本的依赖包:
- 若通过FlutterFire的
firebase_analytics包集成,打开项目根目录的pubspec.yaml,指定兼容版本(比如^9.1.0,对应原生依赖支持minSdk 16):
dependencies: firebase_analytics: ^9.1.0
- 执行
flutter pub get同步依赖,之后重新运行项目 - 若直接在Gradle中引用原生依赖,打开
android/app/build.gradle,将com.google.firebase:firebase-analytics的版本改为18.0.0及以下
方案3:强制覆盖Manifest校验(不推荐)
仅在测试场景临时使用,可能导致低版本设备运行时崩溃:
- 打开
android/app/src/main/AndroidManifest.xml - 在根
manifest标签添加tools命名空间,同时在uses-sdk标签中添加强制覆盖属性:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.your.app.package"> <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="33" tools:overrideLibrary="com.google.firebase.firebase_analytics"/> <!-- 其他Manifest内容 --> </manifest>
- 保存后重新运行项目,需注意在Android 4.x(API 16-18)设备上可能出现API找不到的崩溃
额外排查点
- 检查项目中其他Firebase组件或第三方依赖是否也要求更高的minSdk,需统一调整版本或升级项目minSdk
- 若修改后仍报错,执行
flutter clean+flutter pub get彻底清除缓存后重试
内容的提问来源于stack exchange,提问作者mærth
相关产品推荐
相关产品推荐

