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

MacBook Pro M3上Expo无法自动启动Android模拟器求助

React Native + Expo 无法自动启动Android模拟器问题排查与解决

问题场景

  • 新MacBook Pro M3上,React Native结合Expo创建项目正常
  • 手动启动Android模拟器后可正常运行项目,但Metro无法自动启动模拟器
  • 按下a尝试启动时,收到错误提示需手动启动/Users/miguel/Library/Android/sdk/emulator/emulator @INFO,但实际无名为INFO的模拟器
  • 执行emulator list-avd命令时,列表中出现INFO项,推测Metro误将其作为首个AVD尝试启动,但它并非有效AVD
  • 已尝试重启设备、重装Android Studio、更换Java版本、检查环境变量等操作,均未解决问题

当前环境配置:

  • Node 21、Java 17、Expo 0.17.6、Android SDK 33(Tiramisu)、Pixel 7 API 34的AVD

问题原因

1. INFO项是什么

INFO是Android模拟器崩溃或异常退出时生成的无效AVD配置残留文件,并非真实的模拟器设备。/tmp/android-miguel/emu-crash-34.1.18.db里的空文件夹和损坏的settings.dat就是模拟器异常崩溃留下的痕迹,这些残留被系统误识别为合法AVD。

2. 自动启动失败的核心原因

Metro默认会调用emulator list-avd获取AVD列表,并选择列表中的第一个设备启动。由于INFO这个无效项排在你的Pixel 7模拟器前面,Metro尝试启动这个不存在的设备,导致启动失败。

解决方法

1. 删除INFO无效AVD配置

  • 打开AVD存储目录:~/.android/avd/
  • 找到并删除INFO.avd文件夹和INFO.ini文件
  • 清理临时崩溃文件:删除/tmp/android-miguel/目录下所有以emu-crash开头的文件夹和文件

2. 手动指定启动的AVD

删除INFO后如果仍有问题,可强制指定要启动的模拟器:

  • 先执行emulator list-avd获取有效AVD的名称(比如你的Pixel 7 API 34对应的名称,假设是Pixel_7_API_34)
  • 在Metro控制台输入a --device Pixel_7_API_34,直接启动指定模拟器

3. 调整环境变量优先级

确保emulator命令的路径优先级高于旧工具路径,避免调用旧版本工具导致的识别错误:
修改你的shell配置文件(比如~/.zshrc或~/.bashrc),将$ANDROID_HOME/emulator放在PATH最前面:

# SDK导出
export ANDROID_HOME=$HOME/Library/Android/sdk
# 工具导出(emulator路径优先)
export PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$PATH"
export ANDROID_AVD_HOME=~/.android/avd

修改后执行source ~/.zshrc(对应你的shell配置文件)使配置生效

4. 重置模拟器缓存

  • 打开Android Studio,进入Tools > Device Manager
  • 选中你的Pixel 7 API 34模拟器,点击右上角下拉菜单,选择Wipe Data
  • 重启Android Studio和Metro服务,再尝试自动启动

内容的提问来源于stack exchange,提问作者Migalejo Lejo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:01:31