Flutter项目迁移后编译报错:AndroidManifest合并失败
嘿,这个问题我熟!你遇到的是典型的Android Support库版本冲突导致的Manifest合并失败——不同依赖引用了不同版本的support库,结果Manifest里的android.support.VERSION元数据重复了。给你几个靠谱的解决办法:
解决Flutter项目迁移后Android Manifest合并失败问题
方法1:强制统一所有Support库版本
这是最快解决冲突的方式,直接让Gradle强制所有依赖使用同一个版本的Support库。打开Android模块的android/app/build.gradle(注意是app目录下的,不是项目根目录的),添加以下配置:
android { // 保留你原本的其他配置... configurations.all { resolutionStrategy { force 'com.android.support:appcompat-v7:25.4.0' force 'com.android.support:support-v4:25.4.0' // 把报错里提到的其他冲突support库也加进来,版本统一成你需要的那个 } } }
保存后重新构建,Gradle会自动覆盖所有依赖的版本,避免冲突。
方法2:迁移到AndroidX(长远解决方案)
旧的Support库已经被AndroidX取代了,如果你打算彻底解决这类版本问题,建议直接迁移到AndroidX:
- 在
android/gradle.properties文件里添加两行配置:
android.useAndroidX=true android.enableJetifier=true
- 把
android/app/build.gradle里的compileSdkVersion和targetSdkVersion升级到至少28(AndroidX的最低要求版本)。 - 运行
flutter clean清理缓存,然后重新执行flutter run。Jetifier会自动把所有旧的Support库依赖转换成AndroidX对应的库。
方法3:排查具体冲突的依赖
如果你想搞清楚到底是哪个插件引入了冲突的版本,可以在Android Studio的Terminal里运行这个命令:
./gradlew app:dependencies
它会输出完整的依赖树,你搜索com.android.support相关条目,就能找到版本不一致的那个依赖。之后要么把这个插件升级到最新版本(很多新版本已经适配AndroidX了),要么用方法1的强制版本来覆盖它。
方法4:清理缓存重试
有时候缓存也会搞出奇怪的问题,先执行这几个命令清掉缓存:
flutter clean rm -rf android/.gradle
然后重新构建项目,说不定问题就消失了。
内容的提问来源于stack exchange,提问作者Charles Jr
相关产品推荐
相关产品推荐

