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

React Native集成unimodule后执行yarn android报错:无法解析.expo/.virtual-metro-entry模块

React Native CLI 项目安装 unimodule 后 yarn android 模块解析错误

问题

使用 React Native CLI 开发图像表情识别项目,为集成 tensorflow/tfjs-react-native 安装了 unimodule,但每次执行 yarn android 时出现以下错误:

Error: 无法解析模块 ./.expo/.virtual-metro-entry,路径为 /home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/.:

以下文件均不存在:

  • .expo/.virtual-metro-entry(.native|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
  • .expo/.virtual-metro-entry/index(.native|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
    at ModuleResolver.resolveDependency (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:114:15)
    at DependencyGraph.resolveDependency (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/node-haste/DependencyGraph.js:277:43)
    at /home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/lib/transformHelpers.js:169:21)
    at Server._resolveRelativePath (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/Server.js:1045:12)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Server.requestProcessor [as _processBundleRequest] (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/Server.js:449:37)
    at async Server._processRequest (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/Server.js:383:7)

解决步骤

  • 清除 Metro 缓存并重启服务
    缓存可能残留了无效的 Expo 路径引用,执行:

    yarn start --reset-cache
    

    之后重新运行 yarn android。

  • 删除不必要的 .expo 目录
    React Native CLI 项目不需要 .expo 目录,直接删除:

    rm -rf .expo
    
  • 配置 Metro 忽略 .expo 目录
    在 metro.config.js 中添加规则,阻止 Metro 解析该目录:

    const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
    
    module.exports = mergeConfig(getDefaultConfig(__dirname), {
      resolver: {
        blockList: [/\.expo\/.*/],
      },
    });
    

    修改后重启 Metro 服务。

  • 清理并重新安装依赖
    检查 package.json,移除所有非必须的 expo- 前缀依赖,然后执行:

    yarn install
    
  • 重新初始化 unimodule 配置
    如果 unimodule 配置有误,执行:

    npx unimodules-cli init
    

    确保生成的配置文件中没有指向 Expo 相关路径的错误设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:52:52