Flutter升级后MergeNativeLibsTask执行失败问题求助
你遇到的是多个依赖包包含相同native库文件导致的合并冲突问题,之前的packagingOptions配置没生效是因为针对资源文件的排除规则不适用于native库。可以按以下步骤解决:
1. 修正packagingOptions配置
在项目的android/app/build.gradle文件的android代码块中,修改packagingOptions,直接针对native库文件做排除或优先级设置:
android { // 其他原有配置... packagingOptions { resources.excludes.add("META-INF/*") // 方式一:排除所有架构下的重复libc++_shared.so exclude "lib/**/libc++_shared.so" // 方式二:如果排除后某功能异常,强制保留第一个找到的版本(二选一即可) // pickFirst "lib/arm64-v8a/libc++_shared.so" } }
2. 清理缓存并重新构建
冲突可能来自gradle缓存的旧文件,执行以下操作:
- 运行命令:
flutter clean - 删除项目根目录下的
.android/.gradle文件夹 - 运行命令:
flutter pub get - 重新编译运行应用
3. 排查依赖版本(可选)
如果上述方法仍有问题,可以查看依赖树确认冲突来源:
- 运行命令:
flutter pub deps
找到引入arm64_v8a_debug和pdfium-android的上层依赖,尝试升级或降级对应依赖版本,从根源避免冲突。
内容的提问来源于stack exchange,提问作者reeeee
相关产品推荐
相关产品推荐

