React Native发布至Expo时bundleReleaseJsAndAssets构建失败
React Native 发布到Expo构建失败排查方案
错误核心信息

核心报错点如下:
任务
:app:bundleReleaseJsAndAssets执行失败
进程command 'node'执行结束,返回非零退出值1
构建总耗时3分31秒
伴随提示:构建使用了已弃用的Gradle特性,不兼容Gradle 8.0;文件系统查询失败(errno 2:无对应文件或目录),虚拟文件系统全量状态被丢弃;最终提示需查看"Run gradlew"阶段日志获取详细错误。
排查解决步骤
- 第一步先拿全量错误日志,当前输出是截断的,没有给出node进程退出的真实原因。进入项目下的
android目录,执行命令:./gradlew assembleRelease --stacktrace --info
重点盯bundleReleaseJsAndAssets阶段的输出,90%的这类报错都是JS侧问题:比如语法错误、导入路径写错、依赖缺失、metro配置异常、资源文件不存在,拿到具体报错直接对应修复即可。 - 做基础环境校验
- 执行
node -v确认本地Node版本符合项目要求,Expo项目推荐使用16/18系列的LTS版本,不要用过新的非LTS版本或者太老的14以下版本。 - 删除项目根目录的
node_modules文件夹和锁文件,重新执行npm install或yarn install安装全量依赖,排除依赖损坏、依赖缺失的问题。 - 本地执行
npx expo start确认开发模式下项目能正常启动,没有红屏报错,提前排查掉低级语法错误、资源路径错误这类问题。
- 执行
- 单独验证JS打包流程,不用等完整Gradle构建浪费时间,在项目根目录执行:
npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
如果这个命令执行失败,直接看输出的报错修复JS侧问题即可,和原生构建配置无关。 - 清理Gradle缓存修复构建异常
- 进入
android目录执行./gradlew clean清理旧构建产物,再重新触发构建。 - 如果之前手动改动过android目录下的Gradle配置、或者刚升级过Expo SDK版本,直接执行
npx expo prebuild --clean重新生成原生配置文件,避免手动改配置导致的版本不匹配问题,不要盲目升级Gradle到和当前Expo SDK不兼容的版本。 - 如果用EAS云端构建,检查
eas.json里指定的Node版本和本地版本一致,清理云端构建缓存后重新触发构建。
- 进入
- 修复文件系统报错
- 检查项目存放路径,不要包含中文、空格、特殊字符,不要放在系统权限受限的目录(比如Windows的Program Files、macOS/Linux的root目录),移到纯英文路径的普通用户目录下再构建。
- 如果是在WSL环境下构建,不要把项目放在Windows挂载的/mnt盘符目录下,移到WSL自身的文件系统目录再执行构建,避免挂载异常导致的文件读取失败。
内容的提问来源于stack exchange,提问作者JEHAD HLEWI
相关产品推荐
相关产品推荐

