如何修复React Native中的“Error spawn Unknown system error -8”错误
React Native run-android 报错 "Error spawn Unknown system error -8" 解决思路
问题场景
在MacBook的Android模拟器中运行特定React Native项目时,执行npx react-native run-android命令出现Error spawn Unknown system error -8错误。其他RN项目在该Mac上可正常运行,且该特定项目在Windows电脑上也能正常运行。
错误栈信息
Error: spawn Unknown system error -8 at ChildProcess.spawn (node:internal/child_process:413:11) at Object.spawn (node:child_process:743:9) at module.exports (/Users/hannes/Projects/test2/mapp/native-frame/node_modules/@react-native-community/cli-platform-android/node_modules/execa/index.js:205:26)
已尝试的解决方案
- 删除
package-lock.json - 执行
rm -r node_modules+ 在android目录下执行gradlew clean - 在Android Studio中创建与
build.gradle指定API级别匹配的新虚拟设备 - 将node升级至18.8.0
- 将npm升级至8.18.0
- 执行
npm cache clean --force
可行解决思路
1. 修复可执行文件权限
System error -8多与可执行文件权限不足或架构不兼容有关:
- 进入项目的android目录,执行
chmod +x gradlew给gradle脚本添加执行权限 - 检查
node_modules中第三方依赖的二进制文件,若存在权限问题,批量执行chmod +x修复
2. 匹配Node.js与Mac芯片架构
如果是M系列芯片Mac,确保Node.js为arm64原生版本:
- 执行
node -p process.arch查看架构,若显示x64,卸载现有Node后通过Homebrew安装arm64版本:brew install node
3. 深度清理Android构建缓存
- 删除全局gradle缓存:
rm -rf ~/.gradle/caches - 删除项目本地构建产物:
rm -rf android/build - 重新执行
npx react-native run-android
4. 排查项目特定依赖或脚本
- 对比正常RN项目的
package.json,移除差异依赖并逐个测试,定位问题包 - 检查项目的
postinstall等自定义脚本,确认是否生成了Mac不兼容的可执行文件
5. 验证Android环境变量配置
- 确保
ANDROID_HOME/ANDROID_SDK_ROOT环境变量正确,且$ANDROID_HOME/platform-tools、$ANDROID_HOME/tools已加入PATH - 执行
adb devices验证Android调试环境正常
内容的提问来源于stack exchange,提问作者Carlo-Rodriguez
相关产品推荐
相关产品推荐

