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

Windows环境VS Code中React Native安卓应用下载时Metro崩溃

React Native EPERM权限错误及Metro端口问题解决方案

问题场景

  • 按React Native官方文档配置环境后,执行npm start再npm run android,应用成功安装但提示Metro未运行
  • 切换至8088端口启动Metro(npm start -- --port=8088)解决了Metro未运行的问题,但再次执行npm run android时,安卓应用下载阶段Metro突然停止,终端抛出EPERM权限错误,指向路径:D:\React-native_Projects\Infovision_demo_rn_js_ts_final_projects\rn_cli\RnJsMvvmProjectNew\android\app\build\intermediates\stripped_native_libs\debug\out\lib\arm64-v8a\libevent-2.1.so.tmp70b4bc8
  • 已尝试重装所有依赖、npm,参考相关方案但项目node_modules中无blacklist.js文件
  • 当前版本:npm v9.5.1、node v18.16.1、react-native@latest

解决方案

1. 清理Android构建缓存及临时文件

  • 进入项目的android目录,执行:
    ./gradlew clean
    
  • 手动删除android/app/build/intermediates文件夹,彻底清除残留的临时构建文件

2. 以管理员权限运行终端

  • 关闭所有终端窗口,右键选择以管理员身份运行命令提示符或PowerShell,再依次执行:
    npm start -- --port=8088
    npm run android
    
  • Windows下多数EPERM权限问题源于终端权限不足,无法修改系统保护路径的文件,这一步是核心解决手段

3. 同步Metro端口与Android项目

  • 在项目根目录的metro.config.js中配置固定端口:
    const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');
    
    module.exports = mergeConfig(getDefaultConfig(__dirname), {
      server: {
        port: 8088,
      },
    });
    
  • 执行npm run android时直接指定端口,避免端口不一致:
    npm run android -- --port=8088
    

4. 修复Node.js/npm权限配置

  • 检查项目文件夹权限:右键项目根目录→属性→安全,确保当前用户拥有完全控制权限,无权限则添加
  • 配置npm全局包路径到用户目录,规避全局权限问题:
    npm config set prefix C:\Users\[你的用户名]\AppData\Roaming\npm
    

5. 降级到稳定版React Native(可选)

  • 若最新版React Native存在兼容性问题,尝试降级到稳定版本(如0.72.x):
    npm install react-native@0.72.6 --save-exact
    npm install
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:40:33