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

React Native项目运行Android模拟器时遇多异常,请求排查解决

React Native项目运行Android模拟器时遇多异常,请求排查解决

看起来你在启动React Native Android项目时碰到了一串连锁问题,别慌,咱们从日志里的几个核心错误入手,逐个击破:

一、先搞定环境变量缺失问题(adb、emulator命令找不到)

日志里连续出现adb: not found和emulator: command not found,这是因为Android SDK的核心工具路径没加到系统环境变量里,导致CLI找不到这些命令。咱们来补全路径:

  1. 先找你的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
  2. 把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会更稳定。

  1. 先安装JDK 17(可以用OpenJDK或者Oracle JDK,推荐OpenJDK)
  2. 修改JAVA_HOME指向JDK17的安装目录:
    还是以Linux为例,在~/.bashrc里添加:
    export JAVA_HOME=/opt/jdk-17  # 替换成你JDK17的实际路径
    export PATH=$PATH:$JAVA_HOME/bin
    
    执行source ~/.bashrc生效后,用echo $JAVA_HOME和java -version验证是否配置正确。

三、确保模拟器能被CLI正常识别

你说已经手动启动了模拟器,但CLI还是检测不到,解决完上面的环境变量后,咱们再确认:

  1. 执行emulator -list-avds,应该能列出你创建的所有AVD名称
  2. 打开模拟器后,执行adb devices,能看到类似emulator-5554的设备列表,说明adb能识别到模拟器
  3. 这时候再重新执行pnpm android,CLI应该能自动关联到运行中的模拟器了

四、最后走一遍验证流程

为了确保所有配置都生效,建议按这个顺序来:

  1. 关闭所有打开的终端窗口,重新开一个新终端(避免旧环境变量残留)
  2. 停止之前的pnpm start进程,重新启动pnpm start
  3. 执行pnpm android,正常情况下应该能完成安装并启动应用

如果还是碰到Gradle相关的报错,可以试试在项目根目录执行./gradlew clean清理缓存,再重新运行安装命令。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 12:14:31