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

Expo 46升级至47并启用Hermes后Android端RTK Query报错

Expo 47 启用Hermes后Android端RTK Query调度报错

问题详情

Expo从46升级到47版本,在app.json中启用Hermes引擎后,Android端使用RTK Query执行任何调度操作时,出现文件不存在的错误。

错误日志

Error: ENOENT: no such file or directory, open 'C:\Users\kudo\01_Work\Repos\expo\expo\android\versioned-react-native\ReactAndroid\hermes-engine\.cxx\MinSizeRel\2q85j1u4\arm64-v8a\lib\InternalBytecode\InternalBytecode.js'
    at Object.openSync (node:fs:585:3)
    at Object.readFileSync (node:fs:453:35)
    at getCodeFrame (C:\xxx\node_modules\metro\src\Server.js:1028:18)
    at Server._symbolicate (C:\xxx\node_modules\metro\src\Server.js:1101:22)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Server._processRequest (C:\xxx\node_modules\metro\src\Server.js:458:7) {
  errno: -4058,
  code: 'ENOENT',
  path: 'C:\\Users\\kudo\\01_Work\\Repos\\expo\\expo\\android\\versioned-react-native\\ReactAndroid\\hermes-engine\\.cxx\\MinSizeRel\\2q85j1u4\\arm64-v8a\\lib\\InternalBytecode\\InternalBytecode.js'
}

环境信息

expo-env-info 1.0.5 environment info:
System:
OS: Windows 10 10.0.19044
Binaries:
Node: 16.13.2 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.11 - ~\AppData\Roaming\npm\yarn.CMD
npm: 8.1.2 - C:\Program Files\nodejs\npm.CMD
IDEs:
Android Studio: Version 2020.3.0.0 AI-203.7717.56.2031.7583922
npmPackages:
expo: ^47.0.0 => 47.0.8
react: 18.1.0 => 18.1.0
react-dom: 18.1.0 => 18.1.0
react-native: 0.70.5 => 0.70.5
react-native-web: ~0.18.7 => 0.18.8
Expo Workflow: managed

解决办法

  • 清理Metro缓存:执行npx expo start --clear,或者手动删除项目根目录下的.expo和node_modules/.cache文件夹,再重启开发服务器。
  • 校验Hermes配置:确认app.json中android.hermesEnabled设为true,配置后重新启动项目。
  • 升级兼容依赖:更新@reduxjs/toolkit到最新稳定版,执行npm install @reduxjs/toolkit@latest;重新执行npm install确保所有依赖版本匹配无冲突。
  • 修改Metro配置跳过符号化:在metro.config.js中添加自定义符号化逻辑,忽略InternalBytecode.js文件:
    const { getDefaultConfig } = require('expo/metro-config');
    
    const config = getDefaultConfig(__dirname);
    
    config.symbolicator = {
      customizeFrame: (frame) => {
        if (frame.fileName?.includes('InternalBytecode.js')) {
          return null;
        }
        return frame;
      },
    };
    
    module.exports = config;
    
    修改后重启Metro服务器。
  • 切换WSL环境(可选):Windows系统下的路径权限问题可能引发该错误,尝试在WSL2环境中运行项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:55:28