React Native旧项目npx run-android失败,Android Studio启动后脚本加载出错
React Native旧项目运行问题解决方案
一、解决npx react-native run-android/yarn android的spawn EPERM错误
这个错误通常和权限、依赖兼容性或环境拦截有关,可尝试以下步骤:
修复项目文件权限
macOS/Linux执行:chmod -R 755 /Users/huzaifafarooqi/AndroidStudioProjects/shoplay-mobile-mainWindows用户右键项目文件夹→属性→安全→为当前用户添加完全控制权限。同时检查安全软件(如防火墙、杀毒软件)是否拦截了Node.js相关命令。
清理并重装依赖
- 删除旧依赖和锁文件:
rm -rf node_modules package-lock.json yarn.lock - 重新安装依赖:
npm install # 或用yarn yarn install
- 删除旧依赖和锁文件:
适配React Native CLI版本
2年前的RN项目大概率和新版CLI不兼容,建议使用项目本地兼容版本的CLI执行命令:- 查看
package.json中react-native的版本,找到对应的CLI版本(例如RN 0.65对应CLI 6.x) - 用指定版本CLI运行:
npx @react-native-community/cli@6.x run-android
- 查看
二、解决Android Studio运行后Unable to load script错误
即使启动Metro也无请求,可尝试:
重置Metro缓存并重启服务
npx react-native start --reset-cache启动后确保Metro控制台没有报错,等待服务完全就绪后再重新运行应用。
检查设备调试配置
- 确保设备开发者选项中USB调试、通过USB安装应用已开启
- 摇一摇设备(或按Ctrl+M打开调试菜单),选择
Configure Bundler,确认地址为localhost:8081;如果是真机,可尝试替换为电脑的局域网IP(比如192.168.x.x:8081)
手动生成本地脚本(临时方案)
如果Metro连接始终有问题,可先打包本地脚本再运行:npx react-native bundle --platform android --dev true --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/执行完成后再用Android Studio运行,应用会加载本地打包的脚本,但热重载仍需依赖Metro连接,建议优先解决Metro问题。
内容的提问来源于stack exchange,提问作者Huzaifa
相关产品推荐
相关产品推荐

