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
相关产品推荐
相关产品推荐

