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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:40:57