React Native Android模拟器启动失败求助:无代码改动仍报错
排查React Native 0.54.4 Android模拟器启动失败(无代码改动)的方案
我之前也碰到过类似的「无代码改动但突然启动失败」的坑,结合你用的RN 0.54.4版本和Mac 10.13.3环境,给你列几个优先级从高到低的排查步骤,你可以逐个试:
先清缓存重启服务,大概率能解决
RN的缓存机制偶尔会抽风,尤其是没改代码却出问题的情况,先执行这套命令清理缓存:# 重置RN打包缓存并启动Metro react-native start --reset-cache # 清理Android项目的构建缓存 cd android && ./gradlew clean && cd ..清理完之后再重新运行
react-native run-android试试。检查Android模拟器的状态
模拟器有时候会因为资源不足或者状态异常罢工:- 直接关掉当前模拟器,重新启动一个实例
- 确认模拟器的开发者选项和USB调试是开启的(别笑,模拟器偶尔会自己重置这个设置)
- 要是上面都没用,试试新建一个Android虚拟设备(AVD),排除原模拟器的配置问题
核对环境依赖和变量
虽然你没改代码,但系统可能悄悄更新了组件:- 在终端执行
echo $ANDROID_HOME,确认这个环境变量的路径是正确的 - 打开Android Studio的SDK Manager,检查Build Tools、Platform Tools的版本是否和RN 0.54.4兼容(这个版本建议用Build Tools 26.0.2左右)
- 检查Node.js版本,RN 0.54.4适配Node 8.x,版本太高或太低都可能出问题
- 在终端执行
找更详细的错误日志
你现在看到的console.error: "error:",{}太模糊了,得挖具体报错:- 运行
react-native run-android时别关终端,仔细看终端里的完整输出,重点看红色的错误提示 - 打开Android Studio的Logcat,过滤你的应用包名,查看启动过程中的崩溃日志,通常能找到具体原因(比如原生模块加载失败、权限问题之类的)
- 运行
杀掉异常的Metro进程
有时候Metro Bundler会在后台挂掉却没提示,导致应用拿不到代码:- 打开Mac的活动监视器,把所有
node相关的进程都杀掉 - 然后重新启动Metro:
react-native start --reset-cache,再单独启动应用:react-native run-android --no-packager
- 打开Mac的活动监视器,把所有
内容的提问来源于stack exchange,提问作者randombits
相关产品推荐
相关产品推荐

