【问题标题】:Android emulators are not working on macOS Big Sur 11.3+Android 模拟器不适用于 macOS Big Sur 11.3+
【发布时间】:2020-08-25 09:50:02
【问题描述】:

我已将 mac OS 升级到 Big Sur,但没有一个模拟器可以运行。似乎所有 Android 模拟器在 Mac OS Big Sur Beta 上都失败了。我删除了旧的模拟器并创建了具有不同硬件/软件的新模拟器,但没有成功。在android模拟器中引入了以下问题。

  1. ffffffffb69b4dbb:未处理的出口 1d
  2. 模拟器引擎失败
  3. adb 设备离线

https://issuetracker.google.com/issues/165038831

有人有解决办法吗?

编辑 27.04.2021

~/Library/Android/sdk/emulator/emulator -gpu host -read-only -feature HVF -avd Pixel_4_API_29
emulator: Android emulator version 30.5.5.0 (build_id 7285888) (CL:N/A)
handleCpuAcceleration: feature check for hvf
cannot add library /Users/dunatv/Library/Android/sdk/emulator/qemu/darwin-x86_64/lib64/vulkan/libvulkan.dylib: failed
added library /Users/dunatv/Library/Android/sdk/emulator/lib64/vulkan/libvulkan.dylib
cannot add library /Users/dunatv/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
HAX is working and emulator runs in fast virt mode.
qemu-system-x86_64: Back to HAX accelerator
added library /Users/dunatv/Library/Android/sdk/emulator/lib64/vulkan/libMoltenVK.dylib
emulator: INFO: GrpcServices.cpp:301: Started GRPC server at 127.0.0.1:8554, security: Local

更新日期:2021 年 8 月 11 日

目前模拟器和北极狐正在运行。在 Big Sur 11.5.1 上测试

【问题讨论】:

  • 还有一张票:issuetracker.google.com/issues/166155540。我确信最终会合并到另一个中。
  • 我在同一条船上。我几乎所有的测试时间都花在尝试启动模拟器上。
  • 我认为这个问题是相关的:stackoverflow.com/questions/63148352/… 它对我不起作用,但也许可以帮助其他人
  • 因为有些解决方案适用于其他用户。也许它也可以帮助这里的人。出于同样的原因,我也在那里分享了这个问题
  • G Team 在模拟器端修复了这个问题。看来应该在模拟器30.1.5发布了

标签: android-emulator macos-big-sur


【解决方案1】:

更新:现在应该由稳定版中的 Android 模拟器版本 30.5.6 修复。

但是,如果您现在在更新到最新版本的 Android 模拟器后遇到问题,您可以通过从 SDK 管理器中删除并重新添加 Android 模拟器来解决此问题。

工具 > SDK 管理器 > SDK 工具
取消选中 Android Emulator 并点击应用。
检查 Android Emulator 并点击应用。


原答案:

这对我有用https://www.arthurkoziel.com/qemu-on-macos-big-sur

基本上,创建一个名为 entitlements.xml 的 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>

将 XML 文件复制到~/Library/Android/sdk/emulator/qemu/darwin-x86_64

然后在终端中运行以下命令:

codesign -s - --entitlements entitlements.xml --force qemu-system-aarch64
codesign -s - --entitlements entitlements.xml --force qemu-system-aarch64-headless 
codesign -s - --entitlements entitlements.xml --force qemu-system-armel
codesign -s - --entitlements entitlements.xml --force qemu-system-armel-headless 
codesign -s - --entitlements entitlements.xml --force qemu-system-i386
codesign -s - --entitlements entitlements.xml --force qemu-system-i386-headless 
codesign -s - --entitlements entitlements.xml --force qemu-system-x86_64
codesign -s - --entitlements entitlements.xml --force qemu-system-x86_64-headless 

【讨论】:

  • 感谢您的链接,TarekB。我没有看到那个答案。
  • 从 SDK 工具重新添加 Android 模拟器对我有用。
  • 重新安装模拟器在 Big Sur 和模拟器 v30.6.5 上为我工作
【解决方案2】:

2020 年 10 月 1 日更新

Android Emulator 团队已推出 30.1.5,该版本在稳定版中修复了此问题。开发版本 30.2.0 不包含此修复程序。根据 Google 员工的工作,它应该“很快”可用。

另外注意,如果您在模拟器中遇到性能不佳的情况,您可能希望尝试使用主机的 GPU 进行渲染。这可以通过在终端中运行以下命令来完成,其中 -avd 是您的模拟器设备的名称,其中空格变为下划线。

~/Library/Android/sdk/emulator/emulator -gpu host -feature HVF -avd pixel_3a_api_29

旧信息,保留用于教育价值:

This 是对 Big Sur 修复此问题的提交的引用。这看起来应该在模拟器 30.1.5 中发布(参见日志https://android.googlesource.com/platform/external/qemu/+log/refs/heads/emu-30-release),它应该在下一个金丝雀版本中。

如果你等不及了,你应该能够建立那个分支。从 repo 的自述文件中大量提取的经过轻微测试的指南:

# Get the google repo tool - you can skip if you already have it
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo && chmod +x /usr/local/bin/repo

# Get the code, will take some time. Probably best to go get a coffee here or run on a server if you have poor internet
mkdir -p $HOME/emu-master-dev && cd $HOME/emu-master-dev
repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev
repo sync -j8

# Get XCode 10.1 - required
https://download.developer.apple.com/Developer_Tools/Xcode_10.1/Xcode_10.1.xip
sudo xcodebuild -license accept &&
sudo xcode-select --install

# Get MacOS 10.13 SDK which is required
export XCODE_PATH=$(xcode-select -print-path 2>/dev/null)
git clone https://github.com/phracker/MacOSX-SDKs
cp -r MacOSX-SDKs/MacOSX10.13.sdk/ "$XCODE_PATH/Platforms/MacOSX.platform/Developer/SDKs"

# Build the emulator, which will be another coffee break...
cd external/qemu && android/rebuild.sh

# run it :)
./objs/emulator -list-avds

【讨论】:

  • 今天更新的 macOS 11.3 模拟器似乎根本无法运行
  • 不适用于 11.3。从 AVD 工具,从命令行,在 AS 的工具窗口中尝试。这个 BigSur 版本没有任何效果。作为 Genymotion 最新版本的工作。
  • 对于 macOS Big Sur 11.3,this 帖子有一个适合我的解决方案。我把它放在这里供参考。
  • 安卓模拟器新更新30.5.6解决了这个问题。万岁!!!
  • MacOs Big Sur 11.4 发生错误,这可以正常工作?
【解决方案3】:

解决问题的步骤:

1.打开终端,进入目录/Users/&lt;username&gt;/Library/Android/sdk/emulator/qemu/darwin-x86_64/

2.使用touchcat命令创建一个名为entitlements.xml的xml文件

3.将此内容添加到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>

4.然后简单地用它签署 qemu-system-x86_64:

codesign -s - --entitlements entitlements.xml --force qemu-system-x86_64

5.现在只需重新启动 Android Studio,Android 模拟器就会再次运行!

【讨论】:

  • 就是这样!
  • 感谢它的工作。
【解决方案4】:

我的解决方案是从 Android Studio AVD 中擦除数据,然后使用 ./emulator @Pixel_3a_API_29 命令一次又一次地启动它,直到它成功启动。

【讨论】:

  • 我从头开始创建新的模拟器并没有启动
【解决方案5】:

在 SO 上尝试了许多答案/cmets 后,发现此解决方法可行且可重现:

  1. 设置新的 AVD

我使用了 Pixel 3 和 3a,API 30,默认选项

  1. 使用emulator CLI 启动 AVD
$ ~/Library/Android/sdk/emulator/emulator @Pixel_3a_API_30

你会看到臭名昭著的...unhandled exit 1d

  1. ⌃ + c取消命令或按模拟器侧边栏上的x

你应该看到一个关于保存状态的微调器......

  1. 再次运行模拟器(第 2 步),这次应该显示:

5。点击DISMISS(或等待),模拟器应该会启动到Android

注意:从 Android Studio / AVD Manager GUI 启动相同的 AVD 仍会遇到此异常,因此当您需要时 - 像第 2 步一样启动模拟器。

【讨论】:

    【解决方案6】:

    像这样运行模拟器:

    ~/Library/Android/sdk/emulator/emulator -wipe-data @Pixel_3a_API_30
    

    帮我修好了。

    【讨论】:

      【解决方案7】:

      正如@Demirezen 提到的,目前这是一个代码签名问题see details here。 自己进行代码签名或使用 canary build 的模拟器 30.6.4 都可以解决问题。

      【讨论】:

        【解决方案8】:

        花了一整天的时间尝试不同的方法,包括下载 qemu。最后...进入 Android SDK > SDK 工具 > 更新所有内容,确保安装并勾选了 HAXM 安装程序。成功了!

        【讨论】:

        • 现在唯一的问题是,运行 MacOS Monteray 意味着 HAXM 现在无法工作。
        【解决方案9】:

        在上次 BigSur Beta 更新(11.0 Beta (20A5395g))之后,Android Studio 不断关闭。如果我打开任何子窗口,UI 没有响应...

        不再是测试版

        【讨论】:

          【解决方案10】:

          似乎可以与模拟器 30.2.6 一起使用(目前是 beta 频道的最新版本) 虽然锁定文件存在问题,导致 emu 无法启动。

          以下是让一切恢复正常的原因:

          1. 擦除所有 AVD 的数据(不确定是否需要这样做)
          2. 查看每个~/.android/avd/*.avd/ 文件夹并删除hardware-qemu.ini.lock 文件(如果存在)。

          【讨论】:

            【解决方案11】:

            使缓存无效/重新启动并重新创建图像,似乎某些幕后配置不向前兼容。

            【讨论】:

              【解决方案12】:
              1. 转到/Users/&lt;your user&gt;/Library/Android/sdk/emulator/qemu/
              2. 在此文件中,您将看到文件。如果这些文件的名称包含数字64,则:
              3. 使用映像arm64-v8a + API LEVEL= S 创建虚拟设备

              在这些步骤之后应该打开模拟器。

              【讨论】:

                【解决方案13】:

                我遇到了同样的问题,只需将您的 android studio 和所有 sdk 工具更新到最新版本,一切都会正常工作。

                【讨论】:

                • 你有 Big Sur 最新最好的吗?
                • 是的,我愿意。 11.3版
                【解决方案14】:

                添加正确的ANDROID_AVD_HOME 会有所帮助。 可以将export ANDROID_AVD_HOME=$HOME/.android/avd添加到~/.bash_profile

                【讨论】:

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