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

升级Expo SDK 51后Expo Go崩溃,提示'main'未注册求助

解决Expo SDK 51升级后"Invariant Violation: 'main' has not been registered"错误

针对性排查与修复步骤

1. 彻底重置Metro运行环境

  • 立刻停止当前Metro服务,在项目根目录执行强制清理缓存的启动命令:
    npx expo start --clear
    
  • 确认终端当前路径是项目根目录(即存放package.json的文件夹),绝对不能在子目录启动Metro。
  • 关闭手机上的Expo Go,重新打开后扫码加载项目。

2. 检查AppRegistry注册逻辑

  • 确认项目入口文件(通常是App.js/App.tsx)里存在完整的注册代码,示例:
    import { AppRegistry } from 'react-native';
    import App from './App';
    import { name as appName } from './app.json';
    
    AppRegistry.registerComponent(appName, () => App);
    
  • 查看Metro终端日志,找Failed to load module类的报错——这类模块加载失败会直接导致注册逻辑无法执行,找到对应依赖后针对性修复。

3. 修复依赖兼容性问题

从你提供的package.json来看,部分依赖版本和SDK 51(对应RN 0.74.1)不兼容:

  • 升级导航库到适配RN 0.74的版本:
    npm install @react-navigation/native@^6.1.17 @react-navigation/bottom-tabs@^6.5.20 @react-navigation/drawer@^6.6.15 @react-navigation/native-stack@^6.9.26
    
  • 升级nativewind到支持RN 0.74的版本:
    npm install nativewind@^2.0.12
    
  • 重新安装react-native-vector-icons并同步iOS依赖:
    npm install react-native-vector-icons@^10.1.0
    npx pod-install ios
    

4. Hermes引擎相关排查

  • 检查app.json里的Hermes配置是否正确:
    "expo": {
      "ios": {
        "jsEngine": "hermes"
      },
      "android": {
        "jsEngine": "hermes"
      }
    }
    
  • 清理iOS构建缓存:
    cd ios && rm -rf Pods Podfile.lock && pod install && cd ..
    
  • 清理Android构建缓存:
    cd android && ./gradlew clean && cd ..
    

5. 重置依赖安装

你的package.json中main字段配置是正确的,但可以尝试完全重置依赖:

rm -rf node_modules package-lock.json
npm install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:45:18