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

Android Studio运行React Native项目mergeDebugNativeLibs构建失败

修复方案

这个报错是原生库合并阶段检测到多份路径完全一致的libc++_shared.so文件导致,和JVM内存配置无关,之前添加的org.gradle.jvmargs=-Xmx4608m参数只对构建OOM问题有效,无法解决当前重复文件冲突。按以下顺序操作即可解决:

  • 第一步:添加重复文件选取规则
    打开路径/android/app/build.gradle文件,在android{}配置块内添加如下配置:
android {
    // 保留原有compileSdkVersion、defaultConfig等所有配置不变
    packagingOptions {
        pickFirst 'lib/x86/libc++_shared.so'
        pickFirst 'lib/x86_64/libc++_shared.so'
        pickFirst 'lib/armeabi-v7a/libc++_shared.so'
        pickFirst 'lib/arm64-v8a/libc++_shared.so'
    }
}

如果使用的是AGP 7.0及以上版本,把上述配置里的packagingOptions替换为packaging即可,内部规则写法不变。

  • 第二步:清理旧构建缓存
    在项目根目录执行命令:
cd android && ./gradlew clean

清理完成后回到项目根目录重新执行启动命令即可,绝大多数场景下这两步操作就能解决问题。


如果上述操作后仍报错,执行以下排查操作:

  1. 执行依赖树查询命令定位冲突来源:
    cd android && ./gradlew app:dependencies > dep_log.txt
    
    打开生成的dep_log.txt文件,搜索c++_shared关键字,定位到重复引入该库的第三方依赖,在引入该依赖的代码块中添加排除规则即可,示例:
    implementation('对应冲突依赖的坐标') {
        exclude module: 'c++_shared'
    }
    
  2. 检查ABI架构配置一致性
    打开/android/gradle.properties文件,确认存在如下配置:
    reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
    
    再打开/android/app/build.gradle,在defaultConfig{}块内确认ndk配置匹配:
    defaultConfig {
        // 原有配置保留
        ndk {
            abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
        }
    }
    
    修改完成后再次执行clean命令清缓存重新构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:27:15