React Native项目运行Android模拟器时遇多异常,请求排查解决
React Native项目运行Android模拟器时遇多异常,请求排查解决
看起来你在启动React Native Android项目时碰到了一串连锁问题,别慌,咱们从日志里的几个核心错误入手,逐个击破:
一、先搞定环境变量缺失问题(adb、emulator命令找不到)
日志里连续出现adb: not found和emulator: command not found,这是因为Android SDK的核心工具路径没加到系统环境变量里,导致CLI找不到这些命令。咱们来补全路径:
先找你的Android SDK安装位置:
- 打开Android Studio,进入「Settings」(Windows点File→Settings,Mac点Android Studio→Settings)
- 搜索「Android SDK」,查看「Android SDK Location」,Linux下一般是
~/Android/Sdk,Windows则是C:\Users\[你的用户名]\AppData\Local\Android\Sdk
把SDK的几个关键工具目录添加到环境变量:
以Linux为例,打开终端编辑~/.bashrc或~/.zshrc(看你用的shell),添加以下内容:export ANDROID_HOME=~/Android/Sdk # 这里替换成你实际的SDK路径 export PATH=$PATH:$ANDROID_HOME/platform-tools # adb所在目录 export PATH=$PATH:$ANDROID_HOME/emulator # emulator命令所在目录 export PATH=$PATH:$ANDROID_HOME/tools/bin # 辅助工具目录保存后执行
source ~/.bashrc(对应你的配置文件)让修改生效,之后再试adb --version和emulator -list-avds,应该能正常输出内容了。
二、修正JAVA_HOME的无效配置
日志里明确提示JAVA_HOME is set to an invalid directory: /opt/jdk-21,而且React Native目前(2024年)推荐用JDK 17——因为Gradle和Android Gradle Plugin对JDK21的兼容性还存在一些问题,用JDK17会更稳定。
- 先安装JDK 17(可以用OpenJDK或者Oracle JDK,推荐OpenJDK)
- 修改JAVA_HOME指向JDK17的安装目录:
还是以Linux为例,在~/.bashrc里添加:
执行export JAVA_HOME=/opt/jdk-17 # 替换成你JDK17的实际路径 export PATH=$PATH:$JAVA_HOME/binsource ~/.bashrc生效后,用echo $JAVA_HOME和java -version验证是否配置正确。
三、确保模拟器能被CLI正常识别
你说已经手动启动了模拟器,但CLI还是检测不到,解决完上面的环境变量后,咱们再确认:
- 执行
emulator -list-avds,应该能列出你创建的所有AVD名称 - 打开模拟器后,执行
adb devices,能看到类似emulator-5554的设备列表,说明adb能识别到模拟器 - 这时候再重新执行
pnpm android,CLI应该能自动关联到运行中的模拟器了
四、最后走一遍验证流程
为了确保所有配置都生效,建议按这个顺序来:
- 关闭所有打开的终端窗口,重新开一个新终端(避免旧环境变量残留)
- 停止之前的
pnpm start进程,重新启动pnpm start - 执行
pnpm android,正常情况下应该能完成安装并启动应用
如果还是碰到Gradle相关的报错,可以试试在项目根目录执行./gradlew clean清理缓存,再重新运行安装命令。
内容来源于stack exchange
相关产品推荐
相关产品推荐

