AVD 模拟器被杀死 - Mac - 没有任何效果 - [已解决] - 2021

Uli*_*Uli 6 macos android-virtual-device android-emulator android-studio

我花了一整天时间尝试在 stackoverflow 和数十个谷歌结果(简短摘要)上的多个问题中找到的所有方法:

  • 重启电脑
  • 删除并重新创建 AVD
  • 将 AVD 图形更改为软件(在 AVD 管理器中和直接在文件中)
  • 在 SDK 管理器中重新安装 Emulator(所有可能的方式 - 更新、删除和重新安装,启动 AVD 时按需重新安装)
  • 重新安装 HAXM
  • 重装安卓工作室
  • 在 SDK 管理器中检查所有 Android 版本
  • 从命令行启动 AVD(此方法对本文很重要)
  • 可能还有更多
  • ...这一切都以不同的顺序和组合多次

然后我在 youtube 上的(这个)视频下找到了这个评论回复:

找了 5 个小时后,我设法解决了这个问题。 当我尝试从 android studio 运行时没有错误消息。 但是,运行模拟器终端将打印错误消息,这将有很大帮助。 从终端运行: /Users/hendrysetiadi/Library/Android/sdk/emulator/emulator 模拟器 -avd Pixel_4_API_29 我的错误信息如下所示: 模拟器:Android 模拟器版本 30.5.0.0 (build_id 7145572) (CL:N/A) dyld:库未加载:/System/Library/Frameworks/IOUSBHost.framework/Versions/A/IOUSBHost 引用自:/Users/hendrysetiadi/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64 原因:找不到图片 中止陷阱:6 我设法从我朋友的笔记本电脑上获取了 IOUSBHost.framework,然后将其上传到谷歌驱动器(以 zip 格式) 我按照这里的步骤 https://apple.stackexchange.com/questions/300222/accidentally-deleted-a-system-framework-macos-screwed 步骤是 - 重启 mac 和 command+R 以显示恢复选项,选择 safari 图标以在恢复模式下启动 safari - 在safari中,打开我之前上传的google drive链接,然后将zip文件直接下载到/System/Library/Frameworks/(会自动解压) - 重新启动笔记本电脑。 - 完毕

这与我使用命令行方法得到的错误完全相同。

问题是,我确实可以访问另一台运行 OSX 的计算机 - 在我的情况下是 Mojave。但我不知道 os 版本是否那么重要。

我的问题是:“是否有人有能力并愿意提供在OSX(最好是 Mojave)的/System/Library/Frameworks/ 中找到的文件IOUSBHost.framework并在此处发布链接?” 最好是 zip,但我可以自己管理。

我将立即测试该方法,如果它有效,我将自己托管该文件(以保持可用性并释放海报的资源)并在此处创建解决方案答案。

谢谢

Uli*_*Uli 9

编辑:

更新到 Android Emulator 30.5.4.0 后,不再需要该框架。谷歌可能已经解决了这个问题。


经过进一步研究并感谢这里的评论,特别是Don Pato 的回答,很明显,在 Android 模拟器更新到版本 30.5.3.0 后,由于缺少框架,它开始在 OSX Mojave 及更早版本上显示给定错误。

这种情况有两种明显的解决方案+这个:

  1. 更新操作系统
  2. 降级 Android 模拟器(以及 Android Studio 本身)
  3. 这个解决方案

由于某些其他软件兼容性,第一个解决方案可能无法使用,而第二个解决方案可能不切实际,因为较旧的模拟器能够最大运行 Android API 29。

感谢提到的 Youtube 评论的原作者 ( Hendry Setiadi ) 提供了所需的文件(他是这里的英雄),这个问题可以通过避免前面的 2 个选项来解决。我不得不稍微改变他的步骤,因为由于“磁盘空间不足”错误,我无法在恢复模式下直接在 Safari 中下载文件。

解决过程:

  1. 从以下链接下载缺少的框架:https : //www.dropbox.com/s/i9bzzw5sr0s7e81/IOUSBHost.framework.zip?dl=0
  2. 优尼普
  3. 现在有必要将文件IOUSBHost.framework 获取/System/Library/Frameworks,这是系统只读目录。谁知道怎么做,可以停止阅读,直接去做。我是按照以下步骤完成的 - 其中一些可能是不必要的。
  4. 使用 Cmd+R 重新启动以恢复,并在实用程序中启动终端以禁用系统完整性保护 csrutil disable
  5. 通过输入终端重新启动到系统并挂载系统可写 sudo mount -uw /
  6. 现在您可以复制文件 - 我在 Finder 中完成了(需要 mac 用户密码)
  7. 不要忘记在恢复时再次打开 SIP csrutil enable

启动您的 AVD!