You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android编译报错:mergeDebugNativeLibs任务因so库冲突执行失败

解决Android :app:mergeDebugNativeLibs的SO文件冲突问题

你遇到的是多个依赖库重复打包相同SO文件导致的合并冲突——单独处理其中一个SO只会让另一个的冲突暴露出来,需要同时针对两个冲突文件配置打包规则:

  1. 同时配置两个SO的打包优先级
    在app模块的build.gradle文件中,更新packagingOptions,对libfbjni.so和libc++_shared.so同时设置pickFirst规则,覆盖所有受影响的CPU架构:
android {
    // 其他配置项...
    packagingOptions {
        // 处理armeabi-v7a架构的冲突
        pickFirst 'lib/armeabi-v7a/libfbjni.so'
        pickFirst 'lib/armeabi-v7a/libc++_shared.so'
        
        // 如果其他架构(如arm64-v8a、x86、x86_64)也出现冲突,同步添加对应规则
        pickFirst 'lib/arm64-v8a/libfbjni.so'
        pickFirst 'lib/arm64-v8a/libc++_shared.so'
        pickFirst 'lib/x86/libfbjni.so'
        pickFirst 'lib/x86/libc++_shared.so'
        pickFirst 'lib/x86_64/libfbjni.so'
        pickFirst 'lib/x86_64/libc++_shared.so'
    }
}

打包时会自动选择每个架构下第一个出现的对应SO文件,避免重复文件冲突。

  1. 从根源消除重复依赖(可选但推荐)
    如果想彻底解决而非绕过冲突,可以排查重复引入SO的依赖库:
  • 执行命令查看app模块的完整依赖树:
./gradlew app:dependencies
  • 在输出中搜索fbjni或c++_shared相关条目,找到重复引入的依赖库,通过exclude语法移除其中一份重复依赖。比如发现库A和库B都引入了fbjni,可在依赖声明中排除:
implementation('com.example.library:A:1.0.0') {
    exclude group: 'com.facebook.fbjni', module: 'fbjni'
}

内容的提问来源于stack exchange,提问作者Vaishnavi Maske

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:35:40