使用EAS构建React Native应用后卡在Expo启动页的问题
Expo EAS构建后Android模拟器卡在启动页排查方案
1. 核对依赖版本兼容性
- 先确认
package.json中expo的SDK版本,对照Expo官方文档里对应版本的依赖兼容清单,逐一检查第三方库(如react-native-gesture-handler、react-native-reanimated)的版本是否匹配,不兼容的依赖很可能导致启动阶段卡死。 - 执行命令
npx expo doctor,工具会自动扫描依赖冲突并给出修复建议,优先处理它提示的问题。
2. 捕获启动阶段的错误日志
- 生产环境打包和开发环境运行的逻辑有差异,开发中被忽略的错误可能在EAS构建后触发。在项目入口文件(比如
App.js)添加全局错误捕获:import { LogBox } from 'react-native'; import { ErrorUtils } from 'react-native'; LogBox.ignoreAllLogs(false); // 关闭日志过滤,显示所有警告和错误 ErrorUtils.setGlobalHandler((error, isFatal) => { console.error('全局错误:', error); // 若需要,可在这里添加错误上报逻辑 }); - 构建开发版包:
eas build --profile development,安装到模拟器后,通过adb logcat *:E查看Android系统的错误日志,定位启动时的异常点。
3. 检查资源配置与缓存
- 确认
app.json/app.config.js的assets字段已正确包含所有需要打包的资源(字体、图标等),缺失的资源会导致生产构建卡在加载阶段。 - 执行
npx expo prebuild --clean清理预构建缓存,之后再重新发起EAS构建,避免缓存中的旧资源引发问题。
4. 排查第三方原生模块
- 如果使用了带原生代码的第三方库或自定义原生模块,检查
android/app/build.gradle中的依赖配置是否正确,是否存在与EAS构建流程冲突的设置。 - 采用排除法:临时移除最近新增的可疑依赖,重新构建测试,逐步定位到导致卡死的模块。
5. 验证EAS构建配置
- 检查
eas.json中的Android构建配置,比如buildType、gradleCommand是否合理。若开启了代码混淆(minifyEnabled),需确认是否给敏感第三方库添加了混淆豁免规则。 - 对比
expo run:android和eas build的环境变量差异,确保EAS构建时没有遗漏必要的环境变量,部分依赖可能依赖特定环境变量才能正常初始化。
内容的提问来源于stack exchange,提问作者Klaudio Luku
相关产品推荐
相关产品推荐

