Android 模拟器 30.4.5 无法在 MacOS 上运行

Android Emulator 30.4.5 not working on MacOS

系统信息

MacOs Version - 11.3 Beta

Android Studio Version - 4.1.2

Android Emulator Version - 30.4.5

Android HAXM Version - 7.5.1

错误堆栈

emulator: Android emulator version 30.4.5.0 (build_id 7140946) (CL:N/A)
handleCpuAcceleration: feature check for hvf
cannot add library /Users/rajaparikshit/Library/Android/sdk/emulator/qemu/darwin-x86_64/lib64/vulkan/libvulkan.dylib: failed
HVF error: HV_ERROR
qemu-system-x86_64: failed to initialize HVF: Invalid argument
Failed to open the hax module
No accelerator found.
qemu-system-x86_64: failed to initialize HAX: Operation not supported by device
added library /Users/rajaparikshit/Library/Android/sdk/emulator/lib64/vulkan/libvulkan.dylib
cannot add library /Users/rajaparikshit/Library/Android/sdk/emulator/qemu/darwin-x86_64/lib64/vulkan/libMoltenVK.dylib: failed
added library /Users/rajaparikshit/Library/Android/sdk/emulator/lib64/vulkan/libMoltenVK.dylib

Android 模拟器版本 - 30.0.26 运行 完全符合预期。但在 30.4.5.0 更新后它不起作用。

我试图搜索降级到 30.0.26 的方法,但找不到,即 android 工作室管理器中也没有任何选项。

我看到了 SO post. Google store all the emulators version in repository URL - http://dl.google.com/android/repository/ 但我不知道 30.0.26 版本的构建版本所以不能这样。

更新-

请按照下面接受的答案投赞成票。

对于新手或者如果您在任何时候遇到困难,请按照以下步骤操作:

  1. 如果您卸载了最新版本的模拟器,因为它不工作,请重新安装。 (因为如果我们手动替换模拟器目录 Android Studio 无法识别它,因此您将无法从 Android Studio create/run AVD)

  2. 从答案中提到的 URL 下载 zip 文件。

  3. 将内容复制(而不是移动)到您的原始模拟器目录。

  4. 如果需要,请重新启动 android 工作室。

这仍然只是一种解决方法,这个新版本的实际问题仍然存在。

这是模拟器版本 30.0.26 link https://dl.google.com/android/repository/emulator-darwin-6885378.zip (取自这个

下载然后复制安装的模拟器。

如果您启用了文件隔离,它将不起作用;我这样做了,我需要从下载的文件中递归删除隔离

xattr -r -d com.apple.quarantine /path/to/dir

然后我可以通过调用 运行 模拟器:

emulator @device_name

它似乎没有被 AS 检测到,但仍然有效。

以下是临时修复。

错误:

cannot add library /Users//Library/Android/sdk/emulator/qemu/darwin-x86_64/lib64/vulkan/libvulkan.dylib: failed

错误消息中指定的路径中似乎不存在dylib文件。 但是,该库存在于以下路径中:

~/Library/Android/sdk/emulator/lib64/vulkan/libvulkan.dylib

将 vaulkan lib 符号链接到模拟器正在尝试从以下位置加载库的路径:

ln -s ~/Library/Android/sdk/emulator/lib64 ~/Library/Android/sdk/emulator/qemu/darwin-x86_64/lib64

错误2: 然后我得到一个与代码签名相关的错误。

HVF error: HV_ERROR qemu-system-x86_64: failed to initialize HVF: Invalid argument

修复代码签名错误:
步骤1: 创建用于代码签名的 app.entitlements 文件并添加以下内容(来源:https://www.reddit.com/r/VFIO/comments/kdhgni/qemu_hvf_support_for_mac_os_x_bug_sur_hv_error/):

<?xml version="1.0" encoding="utf-8"?>

    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

    <plist version="1.0"> <dict> <key>com.apple.security.hypervisor</key> <true/> </dict> </plist>

第 2 步: 执行代码设计:

codesign -s - --entitlements ~/<path>/<to>/app.entitlements --force ~/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64

启动模拟器:

~/Library/Android/sdk/emulator/emulator -avd Pixel_4_API_30 -gpu auto

模拟器应该可以正确加载。希望这对您有所帮助。

更新:当前版本的模拟器中不再存在此问题。请参考@channe 的评论在升级后恢复更改 AS/emulator.

我在 Mac 上遇到了同样的问题。我能够通过从 Android Studio -> Sdk Manager -> Android Sdk -> SDK Tools.
更新 Android Emulator to 30.6.5 来修复它 我还必须安装 Intel x86 Emulator Accelerator (HAXM Installer).