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

Expo React Native启动卡在Splash Screen报错问题求助

核心报错定位

React Refresh runtime should not be included in the production bundle是第一触发点,属于JS引擎初始化阶段的致命错误,后续的AppRegistry未注册、App.tsx无执行、卡Splash Screen都是这个初始化崩溃的连锁反应——代码还没走到业务入口就已经挂了,和App.tsx业务逻辑、Splash Screen隐藏逻辑完全无关。
这个错误的本质是构建模式冲突:开发环境专属的React Refresh热更新运行时代码,被错误打包进了标记为生产模式的JS bundle里,触发了React Native内置的环境校验逻辑直接抛错。

可落地的修复步骤(按优先级排序,已跳过你验证过的无效操作)
  • 第一步先排查终端环境变量:你当前执行expo start的终端会话里,大概率残留了之前设置的全局NODE_ENV=production变量。隔几周重启项目很容易碰到这个问题——之前开别的项目设的生产环境变量没清,开Expo dev server的时候,Metro识别到NODE_ENV是production就按生产模式打包,但dev server默认又会注入开发用的React Refresh代码,直接触发冲突。先在当前终端执行unset NODE_ENV清掉变量,再执行npx expo start -c启动(-c参数强制全量清Metro缓存,比手动删.expo文件夹清理范围更全)。
  • 第二步排查Expo版本匹配问题:间隔几周时间很可能全局升级过expo-cli,全局CLI版本和项目里锁定的Expo SDK版本不兼容也会触发构建标记混乱。在项目目录执行npx expo doctor,按输出提示修复所有标记为不兼容的依赖版本,修复完成后不要用全局的expo命令启动,始终用npx expo start调用项目本地安装的Expo版本启动,避免版本差问题。
  • 第三步排查自定义构建配置:检查项目根目录的metro.config.js、babel.config.js,有没有手动添加过和React Refresh、代码转换、环境注入相关的自定义规则,如果有临时把相关配置注释掉,用Expo默认配置启动测试。
  • 第四步排查环境变量文件:检查项目根目录下有没有.env、.env.production类的环境配置文件,有没有配置强制切换到生产环境的参数,开发启动时要确保没有加载生产环境的env配置。
  • 兜底修复:如果以上步骤都无效,执行npx expo install react-refresh,把react-refresh的版本对齐到当前Expo SDK要求的匹配版本,再清缓存重启即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:57:13