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
相关产品推荐
相关产品推荐

