解决 Android 模拟器命令输出 Storing crashdata 错误
问题描述
在 macOS(特别是 Apple Silicon 芯片设备)运行 Android 模拟器命令(如 emulator -list-avds
)时,始终输出如下错误信息:
bash
INFO | Storing crashdata in: /tmp/android-gregoire/emu-crash-34.1.18.db, detection is enabled for process: 4832
该问题导致:
react-native run-android
命令将错误信息误认为模拟器名称而启动失败- 即使自定义环境变量(如
ANDROID_HOME
,ANDROID_AVD_HOME
)问题仍然存在 - 报错目录
/tmp/android-gregoire/
中无实质错误数据
兼容性说明
此问题常见于:
- Android Emulator 34.1.18 版本
- Apple Silicon (M1/M2) 设备
- macOS Sonoma 及更高版本
解决方案
以下是两种经过验证的有效解决方法:
方法一:降级至稳定版模拟器(推荐)
效率提示
此方案在多数案例中一次性解决问题
- 访问 Android Emulator 历史版本下载页
- 下载 33.1.24 (Stable) 版本对应 Apple Silicon 的 DMG 包
- 解压下载文件并覆盖 SDK 目录中的旧版:bash
# 默认路径(请根据实际 ANDROID_HOME 调整) cp -R ~/Downloads/emulator/* ~/Library/Android/sdk/emulator/
- 终端中首次运行命令授权权限:bash
emulator -list-avds
- 出现系统权限弹窗时选择 允许
- 再次执行命令验证:bash
emulator -list-avds # 错误信息应已消失
方法二:重装 Android Emulator 工具
- 打开 Android Studio → Tools → SDK Manager
- 切换至 SDK Tools 标签页
- 取消勾选 Android Emulator
- 点击 Apply 完成卸载
- 重新勾选 Android Emulator 并点击 Apply 安装新版本
- 重启终端后测试命令:bash
emulator -version && emulator -list-avds
解决方案对比
方法 | 适用场景 | 优缺点 |
---|---|---|
降级至 33.1.24 | 急需立即修复/使用 React Native 开发 | ✅ 快速生效 ❌ 需手动下载旧版本 |
重装 Emulator 工具 | 开发环境未强耦合特定版本 | ✅ 自动化操作 ❌ 部分情况需降级配合 |
附加建议
环境变量验证
确保自定义路径权限正确(特别是外部存储):bashls -ld /Volumes/GregDev/macmini/android/home/avd # 输出应有读写权限:drwxr-xr-x
React Native 兼容性处理
若降级后仍无法识别设备,临时手动启动模拟器:bash# 先启动模拟器 emulator -avd Pixel_3a_API_34 & # 再启动 React Native npx react-native run-android
清理残留数据
删除错误报告中生成的无效目录:bashrm -rf /tmp/android-gregoire
注意
避免从非官方渠道下载替换文件(如某些 GitHub 评论建议的压缩包)。官方归档版本已涵盖有效解决方案,未知来源文件可能导致安全隐患。
该错误由 Android Emulator 34.1.18 特定版本引起,通常通过降级或重装工具可解决。官方预计在后续版本中修复此问题,建议关注 Android Studio 更新日志。