我花了一整天的时间尝试了在 stackoverflow 上的多个问题和数十个谷歌结果中找到的所有方法(简短摘要):
- 重新启动电脑
- 删除并重新创建 AVD
- 将 AVD 图形更改为软件(在 AVD 管理器中和直接在文件中)
- 在 SDK 管理器中重新安装模拟器(所有可能的方式 - 更新、删除和重新安装、启动 AVD 时按需重新安装)
- 重新安装 HAXM
- 重新安装Android Studio
- 在SDK管理器中查看所有Android版本
- 从命令行启动 AVD(此方法对于本文很重要)
- 可能还有更多
- ...这一切都以不同的顺序和组合多次
然后我在(this https://www.youtube.com/watch?v=AOK9ZxiBOGg)YouTube 上的视频:
I managed to fix the issue after looking for it for 5 hours.
There is no error message when I tried to run from the android studio.
However, running the emulator the terminal will print the error message and this will help a lot.
Run from terminal:
/Users/hendrysetiadi/Library/Android/sdk/emulator/emulator emulator -avd Pixel_4_API_29
My error message is like below:
emulator: Android emulator version 30.5.0.0 (build_id 7145572) (CL:N/A)
dyld: Library not loaded: /System/Library/Frameworks/IOUSBHost.framework/Versions/A/IOUSBHost
Referenced from: /Users/hendrysetiadi/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64
Reason: image not found
Abort trap: 6
I managed to get the IOUSBHost.framework from my friend laptop and then upload it to google drive (in zip format)
I follow the steps in here
https://apple.stackexchange.com/questions/300222/accidentally-deleted-a-system-framework-macos-screwed
The steps are
- restart mac and command+R to show recovery option, choose safari icon to launch safari in recovery mode
- In safari, open the google drive link I have uploaded earlier, then download the zip file directly into /System/Library/Frameworks/ (it will automatically unzip)
- restart the laptop.
- Done
这与我使用命令行方法得到的错误完全相同。
问题是,我确实可以访问另一台运行 OSX 的计算机 - 在我的例子中是 Mojave。但我不知道操作系统版本是否那么重要。
我的问题是:“是否有人有能力并愿意提供该文件IOUSBHost.framework在发现/系统/库/框架/来自 OSX(最好是 Mojave)并在此处发布链接?”最好是 zip 格式,但我可以自己管理。
我将立即测试该方法,如果它有效,我将自己托管该文件(以保持可用性并释放海报的资源)并在此处创建解决方案答案。
谢谢
EDIT:
更新到 Android Emulator 30.5.4.0 后,不再需要该框架。谷歌可能已经解决了这个问题。
经过进一步研究并感谢这里的评论,特别是回答Don Pato https://stackoverflow.com/users/2864517/don-pato很明显,在 Android 模拟器更新到版本 30.5.3.0 后,由于缺少框架,它开始在 OSX Mojave 及更早版本上显示给定错误。
对于这种情况有 2 个明显的解决方案 + 这个:
- 更新操作系统
- 降级 Android 模拟器(以及 Android studio 本身)
- 这个解决方案
第一个解决方案可能由于某些其他软件兼容性而无法实现,而第二个解决方案可能不切实际,因为较旧的模拟器能够运行 Android API 29 max。
感谢原作者(亨德利·塞蒂亚迪 https://www.youtube.com/channel/UC98HsE7zrR0vULyLNemZb4g)提到的 Youtube 评论谁提供了所需的文件(他是这里的英雄),这个问题可以通过避免前面的 2 个选项来解决。我不得不稍微改变他的步骤,因为由于“磁盘空间不足”错误,我无法在恢复模式下直接在 Safari 中下载文件。
解决过程:
- 从以下链接下载缺少的框架:https://www.dropbox.com/s/i9bzzw5sr0s7e81/IOUSBHost.framework.zip?dl=0 https://www.dropbox.com/s/i9bzzw5sr0s7e81/IOUSBHost.framework.zip?dl=0
- Unizp
- 现在需要获取文件IOUSBHost.framework to /系统/库/框架这是系统只读目录。谁知道怎么做,就可以停止阅读并直接去做。我是通过以下步骤完成的 - 其中一些可能是不必要的。
- 使用 Cmd+R 重新启动以恢复,并在实用程序启动终端中禁用系统完整性保护
csrutil disable
- 重新启动系统并通过输入终端将系统安装为可写状态
sudo mount -uw /
- 现在你可以复制文件 - 我是在 Finder 中完成的(需要 mac 用户密码)
- 不要忘记在恢复过程中再次打开 SIP
csrutil enable
开始你的AVD吧!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)