如何解决:“ HAX无法正常运行,并且仿真器以仿真模式运行”


141

问题是

我收到“ HAX无法正常工作并且仿真器在仿真模式下运行”的信息,这是否与Intel x86 Emulator Accelerator(HAXM)安装并在将cpu设置为CPU Intel Atom(x86)的情况下运行avd有关?即使在安装HAXM后感觉AVD的运行速度更快,此消息是否仍表明AVD的性能受到了影响。它应该固定吗?如果可以,如何固定?

我在Mac OS X 10.9.1上运行。

列出通过android sdk管理器安装在我的系统上的内容:

  • 工具类
    • Android SDK工具修订版22.3
    • Android SDK平台工具修订版19.0.1
    • Android SDK构建工具版本19.0.1
    • Android SDK Build-tools Rev 19

==

  • Android 4.4.2(API 19)
    • SDK平台
    • ARM EABI v7a系统映像
    • 英特尔x86 Ato系统映像
    • Google API
    • Android SDK的来源

==

  • 附加功能
    • 英特尔x86仿真器加速器(HAXM)和我也运行了dmg安装程序,并在发现后安装了热修复程序。

AVD设置

  • 平台4.4.2
  • API等级19
  • CPU Intel Atom(x86)

一旦我运行avd:

(ruby-2.0.0-p353) .android   $ tools/emulator -avd 1AVD -wipe-data -no-boot-anim -cpu-delay 0

我得到关注,模拟器最终加载

emulator: The memory needed by this VM exceeds the driver limit.

HAX is not working and emulator runs in emulation mode

我遇到了这个错误,但是我的模拟器已经在运行,所以我的真正问题是Visual Studio目标是iPhone而不是Any CPU,这将我的部署固定到了模拟器上。
贾德

Answers:


200

是的,应该将其修复,HAXM无法正常工作。您的AVD配置中设置了多少RAM供使用?

768M是个不错的选择,但最重要的是此数字必须小于或等于您在HAXM安装期间设置的内存使用率。您可以再次启动其安装以进行修改。


9
谢谢@ ph0b,就这样,HAXM的内存分配为1024,我的avd实例的内存分配设置为1907。感谢您指出这一点。
GnrlBzik 2014年

44
HAXM安装程序建议使用默认的1GB,但Nexus 5 AVD设置为使用1536。将其设置回1GB,我们就可以使用了!
aalaap 2014年

14
谢谢。对于那些想知道的人,HAXM安装程序文件的位置位于sdk/extras/intelADT捆绑包的文件夹中。将光标放在AVD Manager中的HAXM条目上将显示确切的位置。
2014年

2
@zhelon显然,配置HAXM的唯一方法是再次运行安装程序。
ThomasW

23
如果您使用的是Windows和Android Studio,请执行以下操作。在Android Studio中:工具> Android> AVD Manager>您的设备>显示高级设置>将RAM设置为首选大小。在控制面板>程序和功能>英特尔硬件加速执行管理器>更改>手动设置>设置为首选大小中。
Neurotransmitter

66

如果您使用的是Mac,则可以通过caskhaxm使用homebrew进行安装,cask是内置扩展(自2015年起),允许安装非开源和桌面应用(例如chrome,firefox,eclipse等):

brew cask install intel-haxm 

Android Studio

如果使用的是Android Studio,则可以从菜单Tools➞中获得相同的结果SDK Manager,然后在“ SDK工具”选项卡上,选中“ Intel x86 Emulator Accelerator(HAXM安装程序) ”复选框,然后单击“确定” Ok


49

我解决问题的方法是将AVD内存限制和HAXM内存设置为相等,大小为1 GB = 1024 MB。AVD的内存限制不能超过HAXM。

1.将HAXM内存设置为1024 M

更改HAXM内存的唯一方法是再次安装它。我使用终端完成的。在您的计算机中找到Hardware_Accelerated_Execution_Manager。然后更改该文件夹的目录以运行安装脚本。

cd ~/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

-OR-

cd ~/Library/Developer/Xamarin/android-sdk-macosx/extras/intel/Hardware_Accelerated_Execution_Manager

可能需要更改权限:

sudo chmod 755 "HAXM installation"

然后:

./HAXM\ installation -m 1024

-OR-

sudo ./"HAXM installation" -m 1024

2.将虚拟设备设置为具有HAXM内存限制的相同大小

在此处输入图片说明

这对我有用。祝好运!


2
这也为我工作。如果您要查找AVD配置屏幕,请在“ 工具”>“ Android”>“ AVD Manager”中
stephenspann 2015年

2
如果要同时运行多个AVD,则HAXM最大RAM需要是所有正在运行的AVD的总和,即,两个AVD @ 1024MB = 2048MB,因此:$ sudo ./HAXM\ installation -m 2048
Jason Hartley 2016年

24

从英特尔安装最新的HAXM:https://software.intel.com/zh-cn/android/articles/intel-hardware-accelerated-execution-manager

在此之后,它的工作


我必须重新安装此应用程序并将内存设置为768mb。
Sydwell

20

对于Windows。

Android Studio

工具 > Android > AVD Manager > 您的设备 > 铅笔图标 > 显示高级设置 > 内存和存储 > RAM >将RAM设置为您的首选大小。

Control Panel

程序和功能 > 英特尔硬件加速执行管理器 > 更改 > 手动设置>将RAM设置为您的首选大小。

最好将两个地方设置的RAM大小设置为相同。


2
+1用于说明设置这些值的确切位置。互联网上太多的答案都假定读者和我一样并不具备一定的知识水平:-)
MikeKulls

4

在英特尔网站上检查Has的最新版本并进行安装。让Ram的建议大小为“预设2048”,然后尝试运行该应用程序。一切正常。


2

是的,应该将其修复,HAXM无法正常工作。

HAXM有时有效;目前,跨平台使用HAXM的经验很少。

例如,我有2009年末运行10.8.5的iMac和运行@ 2.8Ghz的i7处理器,Android SDK 22.6,并于今天上午(03/05/14)更新了所有功能。API17将在此iMac机器上构建具有HAXM加速功能的仿真器,从而使API19陷入困境。

我还拥有2013年初的MBP 15“ Retina,运行10.8.5和i7处理器@ 2.7Ghz,Android SDK 22.6,今天早上更新了所有功能(03/05/14)。API17将构建具有HAXM加速功能的仿真器,API19也可以很好地工作。

我的(个人)2013年后期MBP Retina 13英寸同上,采用双核i5和Mavericks。

在旧的CPU(甚至是i7)上,芯片级虚拟化正在发生一些变化,新的API19 x86映像需要HAXM才能工作。如果API19无法正常工作,请尝试使用API​​17甚至16。


2

在您的Mac上打开查找程序,然后Ctr + Alt + G 键入以下内容/Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

您将要找到模拟器加速器的安装程序,因此运行它并设置内存,您需要对其进行修改,然后重试以运行您的android应用程序


上面的击键顺序对我不起作用,只是IntelHAXM_<version name>.dmg在'sdk / extras / intel'目录中查找文件,然后从那里运行安装程序(Mac OSX)
kip2

2

如果您正在运行英特尔处理器,请通过在SDK Manager中选中此选项,确保通过SDK Manager安装了HAXM(英特尔®硬件加速执行管理器)安装程序。然后通过以下路径运行HAXM installer ext

your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

还要在安装HAX时检查分配的内存大小,以使其适合仿真器的内存大小。

视频 显示了可以帮助您解决问题的所有必需步骤。

如果在安装HAXM后遇到问​​题,该视频也将为您提供帮助。


1

在安装HAX时增加分配的内存大小,以便恰好比您要在“ Intel x86 Emulator Accelerator(HAXM)”模式下启动的模拟器的内存大小大一点,或者要多一些,

成功解决之后,您现在可以在控制台/ log中查看此内容

在此处输入图片说明



1

壁虎的解决方案效果很好。注意:您提供的HAXM会在所有运行的设备上使用。因此,如果您要同时在手机和平​​板电脑上进行测试,并且每个测试都要求1G。然后确保分配的HAXM至少为2G。


1

从SDK Manager下载HAXM

从Android Studio中打开您的SDK Manager,然后单击屏幕快照中显示的图标。

在此处输入图片说明

单击“默认设置”对话框上的“启动独立SDK管理器”。

在此处输入图片说明

检查节点“其他> Intel x86 Emulator Accelerator(HAXM安装程序)”,然后继续进行HAXM下载。

在此处输入图片说明

安装或修改HAXM

现在,您可以通过访问下载位置来访问HAXM的安装(或修改现有的installtino)。在“运行”中输入此路径

%localappdata%\ Android \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager

并双击文件“ intelhaxm-android.exe”

您可以在修改现有的HAXM安装时增加分配给HAXM的内存大小。我有一台具有32 GB RAM的计算机,并且想同时启动多个AVD(用于自动测试等),因此我为HAXM分配了8 GB。

警告

如果您正在运行一个1 GB的AVD并将2 GB分配给HAXM,则不能运行另一个RAM大于1 GB的AVD。修改或安装HAXM时,请确保Android Device Monitor未运行(为避免任何意外)。

在此处输入图片说明

这些步骤已在Windows平台上进行了测试,但通常只需稍作修改即可应用于其他平台。


1

我的问题是,由于退出了仿真器应用程序,但是该进程尚未完全结束,因此我无法再运行一个有效的仿真器,因此我试图在前一个仿真器仍在运行时启动另一个仿真器。在Mac上,我必须使用活动监视器来查看其他进程并杀死它。脚步:

  1. 打开活动监视器(在实用程序中或使用Command + Space)
  2. 在我的情况下,找到进程名称qemu-system ...
  3. 选择过程。
  4. 使用左上方的“ x”按钮强制退出该过程。
  5. 我不必使用“强制退出”,而只需使用普通的“退出”,但是您都可以使用。

1

就我而言,当我将HAXM内存设置为等于AVD内存时,此错误已修复。HAXM内存1024 MB = AVD内存1024 MB

Hax is enabled
Hax ram_size 0x40000000
HAX is working and emulator runs in fast virt mode.

到现在为止,该错误应已解决。

现在,我列出了我的特定环境,以防对使用OS X的人有所帮助。

OS X El Capitan 10.11.4

MacBook(13英寸),2 GHz Intel Core 2 Duo,4 GB Ram。

Android Studio 2.1

棉花糖(23)x86 甚至连数小时都没有通过闪烁的Android图标屏幕

棒棒糖(22)x86通过了闪烁的android图标屏幕,然后显示

  • 启动Android(优化y个应用中的x个)
  • 启动Android(启动应用程序)
  • 启动Android(更新联系人数据库)
  • 正在启动Android(完成启动),并在这里停留了数小时

KitKat(19)x86可以成功运行,我可以在此处安装hello world。


这是答案吗?@zeeawan
GnrlBzik's

是的,HAXM内存1024 MB = AVD内存1024 MB组合使得hax开始工作。另外,这个答案地址模拟器如何开始为我工作在OS X
zeeawan

我认为需要更多的叙述。
GnrlBzik's

那么,您是说您解决了该错误,但仿真器仍然需要花费很多时间才能启动?
山姆

使用KitKat(19)x86很好。
zeeawan

0

重新打开您的AVD设备配置。通过在AVD管理器中编辑设备。继续选择AVD Android版本。在右窗格中会显示一条建议,该建议将紧随其后,所有建议都会被修复。


0

分配给HAX的默认内存为1024MB。该仿真器显然具有Nexus 5x API 25的1536MB。

如果您使用的是Android Studio,

  • 只需转到工具-> AVD管理器。
  • 然后选择仿真器,然后单击右侧的铅笔按钮进行编辑。
  • 转到新窗口中的高级设置,然后将RAM值更改为1024

奇迹般有效。:)

android studio的屏幕截图

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.