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

React Native模拟器启动时持续构建失败求助

React Native Android构建失败问题排查与解决建议

错误日志

1: 任务执行失败
-----------
* 问题原因:
任务 `:app:buildCMakeDebug[x86_64]` 执行失败。
> com.android.ide.common.process.ProcessException: ninja: 进入目录 `C:\Projects\Nirlat\android\app\.cxx\Debug\2n5b1y2q\x86_64'

C++构建系统[build]执行时失败,执行命令如下:
    @echo off
    "C:\\Users\\sit420\\AppData\\Local\\Android\\Sdk\\cmake\\3.22.1\\bin\\ninja.exe" ^
      -C ^
      "C:\\Projects\\Nirlat\\android\\app\\.cxx\\Debug\\2n5b1y2q\\x86_64" ^
      appmodules ^
      react_codegen_rnscreens ^
      react_codegen_rnsvg ^
      react_codegen_safeareacontext
执行路径:C:\Projects\Nirlat\android\app
ninja: 错误: 异常: 0xC0000005
ninja: 警告: 已生成转储文件: C:\Users\sit420\AppData\Local\Temp\\ninja_crash_dump_4100.dmp

* 建议尝试:
> 使用 --stacktrace 参数获取堆栈跟踪信息。
> 使用 --info 或 --debug 参数获取更多日志输出。
> 使用 --scan 参数获取完整分析报告。
> 如需更多帮助,请访问 https://help.gradle.org。
==============================================================================

2: 任务执行失败
-----------
* 问题原因:
任务 `:react-native-gesture-handler:mergeDebugAndroidTestNativeLibs` 执行失败。
> 执行 com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction 时出错
   > 发现2个路径相同的文件 'lib/arm64-v8a/libc++_shared.so',来源如下:
      - C:\Projects\Nirlat\node_modules\react-native-gesture-handler\android\build\intermediates\library_jni\debug\copyDebugJniLibsProjectOnly\jni\arm64-v8a\libc++_shared.so
      - C:\Users\sit420\.gradle\caches\8.9\transforms\fbf9b5a7055ce2465909adf37dc84594\transformed\react-android-0.76.1-debug\jni\arm64-v8a\libc++_shared.so
     如果你正在使用 jniLibs 和 CMake IMPORTED 目标,请参考相关文档

* 建议尝试:
> 使用 --stacktrace 参数获取堆栈跟踪信息。
> 使用 --info 或 --debug 参数获取更多日志输出。
> 使用 --scan 参数获取完整分析报告。
> 如需更多帮助,请访问 https://help.gradle.org。
==============================================================================

3: 任务执行失败
-----------
* 问题原因:
任务 `:react-native-screens:mergeDebugAndroidTestNativeLibs` 执行失败。
> 执行 com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction 时出错
   > 发现2个路径相同的文件 'lib/arm64-v8a/libfbjni.so',来源如下:
      - C:\Projects\Nirlat\node_modules\react-native-screens\android\build\intermediates\library_jni\debug\copyDebugJniLibsProjectOnly\jni\arm64-v8a\libfbjni.so
      - C:\Users\sit420\.gradle\caches\8.9\transforms\fbf9b5a7055ce2465909adf37dc84594\transformed\react-android-0.76.1-debug\jni\arm64-v8a\libfbjni.so
     如果你正在使用 jniLibs 和 CMake IMPORTED 目标,请参考相关文档

已尝试的解决方法

  • 删除node_modules文件夹
  • 删除yarn.lock文件
  • 删除android目录下的.gradle和build文件夹
  • 执行yarn upgrade命令
  • 升级SDK Manager和CMake版本

针对性解决建议

1. 修复Ninja崩溃(0xC0000005异常)

  • 更换CMake版本:当前使用的3.22.1版本存在崩溃风险,可降级到3.20.x或升级到3.26.x等稳定版本
  • 清理CMake缓存:删除android/app/.cxx目录后重新构建
  • 检查权限:确保项目目录与Android SDK目录拥有完整读写权限,避免权限冲突导致崩溃

2. 解决Native库重复冲突

在android/app/build.gradle中添加打包配置,优先选择第一个匹配的库文件:

android {
    packagingOptions {
        pickFirst 'lib/**/libc++_shared.so'
        pickFirst 'lib/**/libfbjni.so'
    }
}

也可针对特定依赖排除重复库:

dependencies {
    implementation(project(':react-native-gesture-handler')) {
        exclude group: 'com.facebook.react', module: 'react-android'
    }
    implementation(project(':react-native-screens')) {
        exclude group: 'com.facebook.react', module: 'react-android'
    }
}

同时确认package.json中react-native版本为0.76.1,且所有第三方库均适配该版本

3. 补充操作

  • 执行yarn install --force强制重新安装依赖
  • 删除全局Gradle缓存目录C:\Users\sit420\.gradle\caches后重新构建
  • 切换模拟器架构:尝试使用arm64-v8a或x86_64架构的模拟器重新启动项目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 11:13:10