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

更新Expo项目后遇ExpoImage模块缺失等错误,求解决方案

解决Expo更新后ExpoImage相关错误及"main"未注册问题

问题梳理

  • 报错:Cannot find native module 'ExpoImage',js engine: hermes
  • 警告:NativeViewManagerAdapter所需的ExpoImage原生视图管理器未被expo-modules-core导出,已导出视图管理器为[ExpoBlurView]
  • 报错:Invariant Violation: "main"未注册,可能原因包括Metro运行目录错误或模块加载失败未调用AppRegistry.registerComponent

已尝试操作:npx expo start -c、npx expo install expo-image、npx expo prebuild

解决方案

1. 匹配expo-image与Expo SDK版本

跨大版本更新Expo后,直接安装最新版expo-image可能存在兼容性问题。需查看当前Expo SDK对应的expo-image版本号,执行指定版本安装:

npx expo install expo-image@<对应版本号>

2. 彻底重建原生目录

若prebuild无效,删除原生目录后重新生成:

# 删除ios和android目录
rm -rf ios android
# 清理后重新构建
npx expo prebuild --clean

3. 校验metro配置与入口文件

  • 检查metro.config.js未错误排除expo-image模块,确保配置为:
    const { getDefaultConfig } = require('expo/metro-config');
    const config = getDefaultConfig(__dirname);
    module.exports = config;
    
  • 确认入口文件(如App.js/index.js)正确注册应用:
    import { registerRootComponent } from 'expo';
    import App from './App';
    
    registerRootComponent(App);
    
    或使用AppRegistry方式:
    import { AppRegistry } from 'react-native';
    import App from './App';
    import { name as appName } from './app.json';
    
    AppRegistry.registerComponent(appName, () => App);
    

4. 重置Expo模块缓存

执行模块重置后再清除启动缓存:

npx expo modules reset
npx expo start -c

5. 更新expo-modules-core

确保核心模块为兼容版本:

npx expo install expo-modules-core

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:17:08