在macOS High Sierra (10.13)上使用Intel HAXM

37

在 High Sierra (10.13) 上有没有使用 Android 模拟器的方法?

当我运行以下命令时

./HAXM\ installation -u

它说:

HAXM silent installation only supports macOS from 10.8 to 10.12 !

不要使用静默安装? - OneCricketeer
@cricket_007 尝试了非静默安装(-u),但也没有帮助。 - Andrii Kovalchuk
11个回答

67
命令行安装无法工作,出现不支持的Mac OS版本错误,而通过IntelHAXM_6.2.1.mpkg安装可以工作,但由于"Approved Kernel Extension Loading" changes,kext未加载。因此,您需要允许来自Intel的扩展并重新启动Mac,然后像从Android Studio内部一样启动模拟器。要启用,请转到系统偏好设置>安全性与隐私,如屏幕截图所示:

enter image description here


当我点击允许按钮时没有任何反应,即使在重启后也是如此。我该怎么办? - Felix
2
我通过多次按Tab键选择了允许按钮,然后用空格“点击”了该按钮。现在可以用了,哈哈。 - Felix
@Felix - 结果发现它无法通过ScreenShare或SSH工作,因此您需要亲自到机器旁使用键盘和鼠标 - https://github.com/tekezo/Karabiner-Elements/issues/1017 - Cosmin
@aeid,请确保你已经通过“.mpkg”文件顺利安装了HAXM。 - Shaz
1
当我点击允许时,什么也没有发生,但最终安装成功了。所以,只需要等一会儿就好了。 - shoke
显示剩余5条评论

15

我能够按照这篇文章提供的说明在 Mac 上安装 Intel HAXM 驱动程序。可能有其他(更好的)解决方案,但我成功地通过这种方式启动了模拟器。基本上,在尝试安装 HAXM 驱动程序之前,你需要禁用 kext 的安全保护。

这个命令只能在恢复 OS 上工作,这意味着你需要重新启动你的 Mac,并按住 command + R 直到 Apple 标志显示。接下来,你需要进入 Utilities > Terminal 并运行:

csrutil enable --without kext

然后重新启动您的Mac并登录,在此处下载最新的Intel HAXM驱动程序。如果需要,请解压缩,编辑silent_install.sh文件并搜索10.12操作系统版本。您将在该行上找到它,它应该看起来像这样

for v in 10.8 10.9 10.10 10.11 10.12
你需要在 10.12 后面添加版本号 10.13(用空格隔开,与其他部分一样)。保存文件并在此位置打开终端。运行./silent_install.sh,然后应该就可以了。为确保其有效,你还可以运行 sudo kextload -bundle-id com.intel.kext.intelhaxm
现在你的模拟器应该可以工作了。
为了重新启用kext安全保护,你需要在恢复 OS 中重启你的 Mac,在一个终端窗口中运行csrutil enable

伟大的工作成果。对于这种变化的影响有何想法吗? 英特尔为什么会“官方支持”高达10.12? - Jalal El-Shaer
1
@JalalEl-Shaer 我认为以这种方式安装HAXM驱动程序不会有任何副作用。看起来英特尔的人需要删除一个解决方法,因为XNU内核中的一个旧错误已在10.13中修复。 - Octavian Mărculescu
1
csrutil enable --with kext 在我的10.13系统上无效。我不得不运行 csrutil clear 来重置SIP。 - Zayin Krige

12

2
内核扩展无法安装,导致在尝试安装模拟器时出现“/dev/kvm未找到”的结果。 - mxcl
1
这个对我也有用,但是在安装.dmg之后我需要重新启动macOS。 在重启之前,当我尝试启动模拟器时,在控制台中会出现HAX VM错误。 - rynop

8
使用macOS上的新Hypervisor.Framework支持。
~/.android/advancedFeatures.ini中添加此行(如果文件不存在,请创建它)。
HVF = on

这里解答了问题:https://issuetracker.google.com/issues/62395878#comment7

对我来说这个方法有效。

另外,您可以通过更新Intel HAXM来修复此错误。

在此处下载最新版本的HAXM(需要重新启动macOS)

https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager-end-user-license-agreement-macosx

希望它有所帮助。

2
对于一些用户来说,advancedFeatures.ini 的位置将会是 /Users/<username>/Library/Android/sdk/emulator/lib - Jagjot

3
为了验证Intel HAXM是否在运行,请打开终端窗口并执行以下命令:
kextstat | grep intel

如果Intel HAXM操作正确,命令将显示一个状态消息,指示名为com.intel.kext.intelhaxm的内核扩展已加载。
尝试停止并重新启动HAXM,然后验证它是否正常工作。
要停止Intel HAXM,请使用以下命令:
sudo kextunload -b com.intel.kext.intelhaxm

要启动Intel HAXM,请使用以下命令:

sudo kextload -b com.intel.kext.intelhaxm

2
您可以使用Google的6.2.1版本的silent_installer.sh在High Sierra上正确安装HAXM:

https://dl.google.com/android/repository/extras/intel/haxm-macosx_r6_2_1.zip

否则,请使用Android Studio的SDK管理器来下载和安装它:
这是直到6.2.1(仅限Google Distribution)才引入的,看起来是从6.2.0版本中的一个热修复版本,该版本会显示以下消息:
HAXM silent installation only supports macOS from 10.8 to 10.12!

如果您不想使用HAXM,可以使用Hypervisor.Framework,确保已安装Android Emulator 26.1.3文档

通过Hypervisor.Framework或HAXM 6.2.0,模拟器现在完全兼容macOS 10.13 High Sierra。

https://developer.android.com/studio/releases/emulator.html#26-1-3


1

那是什么,如何使用它?我看了那篇帖子,除了你刚才说的内容,没有得到太多信息。 - huey77

1
我必须进入“系统偏好设置>安全性与隐私”,点击解锁按钮,然后会弹出一条消息询问是否允许Intel运行。之后,HAXM就能在High Sierra上运行了。

来自@Shaz的不完整检查答案。 - Lukas
这并不是不完整的,因为这正是我解决问题的方法。你可能不喜欢我的答案,但它解决了我的问题。 - Brent
我的意思是你漏掉了一部分,除了点击“解锁”按钮外,你还需要点击“允许”按钮。 - Lukas

1

非常特殊的情况:如果您将Android Studio和SDK保存在不同的分区中,然后将SDK移动到新格式化的分区,则在我的情况下,只有卸载Android Studio并使用新的SDK重新安装才能解决问题。悲伤的故事...


1

这是关于 Mac 的,不是 PC。 - Fran Marzoa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接