【问题标题】:Android Device Manager fails to launch after updating to MacOS Big Sur 11.3Android 设备管理器在更新到 MacOS Big Sur 11.3 后无法启动
【发布时间】:2021-07-21 02:34:46
【问题描述】:

所以我的 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 其他人有这个问题吗?

【问题讨论】:

  • 不知是否需要在Android Studio设置中重新安装HAXM
  • 何是的....同样的问题在这里..

标签: android macos emulation


【解决方案1】:

2021 年 4 月 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/回答

相关问题:

【讨论】:

  • 是的,这就是需要发生的事情。非常感谢!
  • 在尝试让它工作时只输了一天,可能会更糟,哈哈。谢谢!
  • 如果以上不行,请检查你是否使用的是32位版本的Qemu,那么qemu-system-x86_64应该换成qemu-system-i386。其他架构也是如此。
  • 大家好,我也无法启动模拟器。但我的错误信息是不同的。你能帮我看看,如果他们是同样的问题? stackoverflow.com/questions/67307381/…
  • 为我修复了很棒的解决方案。昨天[28/4]还发布了一个新版本的Android Emulator 3.5.6,小更新能解决这个问题吗?有人可以证实这一点吗?
【解决方案2】:

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

按照以下步骤操作:

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

  1. 选择 Android Emulator 并更新它

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

如果您想继续使用 30.5.6 以下的 Android Emulator 版本 您可以按照接受的答案here

中提到的步骤进行操作

【讨论】:

  • 是的,我已经看到了补丁并且已经更新了我的模拟器。在发布该版本之前我已经问过这个问题,并且我已经接受了上面的早期答案作为我需要的解决方案。
  • 是的,但是很多人不知道这个补丁。因此,这个答案将对他们有所帮助,因此投票将在其他人遇到这种情况时帮助他们提高知名度和解决问题。
  • 确认这对我有用。我今天安装了Android studio,我不得不使用Tools->SDK Manager->SDK Tools
  • 这就是为我做的。我已经安装了最新版本的 Android 模拟器,但是通过这些步骤删除并重新添加它可以解决问题
【解决方案3】:

如果您收到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 说的命令。如果您有任何问题,我很乐意回答。

【讨论】:

  • 谢谢。将您的指示和@laalto 的命令放在一起使它对我有用。非常感谢!
【解决方案4】:

对于那些使用 Xamarin 的人:

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

如果您使用的是 Rider,请转到 Preference、Android 并更新 Emulator SDK:

【讨论】:

    【解决方案5】:

    我今天安装了 Android Studio,并确认仍需要更新。

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

    现在emulator --version 显示 30.6.5.0 并且命令 emulator -avd tak -gpu host 启动硬件加速模拟器没有问题。

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

    附:不要忘记在 .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"
    

    【讨论】:

      猜你喜欢
      • 2021-07-22
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      相关资源
      最近更新 更多