Android 更新到 MacOS Big Sur 11.3 后设备管理器无法启动

Android Device Manager fails to launch after updating to MacOS Big Sur 11.3

所以我的 Mac 刚刚强制更新到 Big Sur 11.3。我一直在尝试访问 Android 设备管理器以访问 运行 模拟设备,但每次都无提示地失败。当我尝试从命令行 运行 它时,我收到此错误消息:

emulator @Pixel_3a_API_30
emulator: Android emulator version 30.5.5.0 (build_id 7285888) (CL:N/A)
handleCpuAcceleration: feature check for hvf
cannot add library /Users/centuryfall/Library/Android/sdk/emulator/qemu/darwin-x86_64/lib64/vulkan/libvulkan.dylib: failed
added library /Users/centuryfall/Library/Android/sdk/emulator/lib64/vulkan/libvulkan.dylib
cannot add library /Users/centuryfall/Library/Android/sdk/emulator/qemu/darwin-x86_64/lib64/vulkan/libMoltenVK.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/centuryfall/Library/Android/sdk/emulator/lib64/vulkan/libMoltenVK.dylib

(将实际用户名替换为“centuryfall”)。

我看过其他一些问题,说 AVD 需要是版本 30。我有 AVD v30.5.5.0 还有其他人遇到过这个问题吗?

2021-04-29 更新:模拟器版本 30.5.6 现已发布稳定版并修复了此问题。旧答案保留在下面。


Apple 已更改管理程序权利(权限),将 com.apple.vm.hypervisor 弃用为 com.apple.security.hypervisor。在 Google 使用新授权修复模拟器代码签名之前,您可以通过自己授予授权来解决此问题。

使用以下内容创建一个文件entitlements.xml

<?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>

和运行

codesign -s - --entitlements entitlements.xml --force /usr/local/bin/qemu-system-x86_64

根据需要替换您的 SDK 所在的 qemu 路径。可能是例如~/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64 在某些 SDK 安装上。

答案基于https://www.arthurkoziel.com/qemu-on-macos-big-sur/

相关问题:

如果出现 entitlements.xml: cannot read entitlement data 错误,您应该在包含 qemu-system-x86_64 文件的文件夹中启动终端。

例如我的 qemu-system-x86_64 文件位于此位置:/Users/yourusername/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64

现在右键单击 darwin-x86_64 文件夹并单击 New terminal Tab at Folder。不要忘记将 entitlements.xml 文件复制到 darwin-x86_64 文件夹中。现在在这个终端 运行 @laalto 说的命令。如果您有任何问题,我会很乐意回答。

更新您的模拟器以解决此问题。

按照以下步骤操作:

在您的 android 工作室中,转到 SDK 管理器 -> SDK 工具选项卡

  1. Select Android 模拟器并更新它

  1. 取消选中 Android 模拟器并应用
  2. 选中Android模拟器并应用

如果您想继续使用低于 30.5.6 的 Android 模拟器版本 您可以按照接受的答案中提到的步骤进行操作

对于那些使用 Xamarin 的人:

Visual Studio Mac 转到首选项。点击Android,会提示修复SDK。单击它,它应该会修复它。

如果您使用的是 Rider,请转到首选项,Android 并更新模拟器 SDK:

我今天安装了Android studio,确认还需要更新。

使用Tools->SDK Manager->SDK Tools更新这两个包。然后制作一个新的模拟器。

现在 emulator --version 显示 30.6.5.0 并且命令 emulator -avd tak -gpu host 可以正常启动硬件加速模拟器。

旁注:模拟器输出仍然抛出两条“无法添加库”行,后面跟着“添加的库”,尽管它似乎启动得很好。

P.s。不要忘记在 .bashrc 或 .zshrc

中设置环境变量
export ANDROID_SDK_ROOT=/Users/dan/Library/Android/sdk
export PATH="$PATH:/Users/dan/Library/Android/sdk/emulator"
export PATH="$PATH:/Users/dan/Library/Android/sdk/tools"