如何解决:“HAX不工作,仿真器在仿真模式下运行”

问题是

我得到“HAX不工作,仿真器在仿真模式下运行”,这是与英特尔x86模拟器加速器(HAXM)安装和运行avd与cpu设置CPU英特尔凌动(x86)? 即使在我安装HAXM之后感觉AVD运行速度更快,这个消息是否表明AVD性能受到了阻碍。 如果是固定的,如果是的话,怎么样?

我在Mac OS X 10.9.1上运行。

通过android sdk manager列出我的系统上安装的内容:

  • 工具
    • Android SDK工具修订22.3
    • Android SDK Platform-tools rev 19.0.1
    • Android SDK构build工具修订19.0.1
    • Android SDK构build工具修订19

==

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

==

  • 附加function
    • 英特尔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 

是的,它应该是固定的,HAXM不工作。 在AVDconfiguration中设置了多lessRAM?

768M是一个很好的数字,但最重要的是,这个数字必须低于或等于安装HAXM时设置的内存使用量。 您可以再次启动安装以进行修改。

如果你在Mac上,你可以使用自制软件安装haxm ,这是一个内置的扩展(2015年),允许安装非开源和桌面应用程序(例如chrome,firefox,eclipse等)。

 brew cask install intel-haxm 

我解决这个问题的方法是将AVD内存限制和HAXM内存大小设置为1 GB = 1024 MB。 AVD不能比HAXM有更高的内存限制。

1.将HAXM内存设置为1024 M

更改HAXM内存的唯一方法是再次安装。 我用terminal做了。 在您的机器中findHardware_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内存限制将虚拟设备设置为相同的大小

在这里输入图像描述

这对我有用。 祝你好运!

从intel安装最新的HAXM: https ://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager

在此之后它正在工作

对于Windows。

Android Studio

工具 > Android > AVDpipe理器 > 您的设备 > 铅笔图标 > 显示高级设置 > 内存和存储 > RAM >将RAM设置为您的首选尺寸。

Control Panel

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

在这两个地方设置的RAM大小最好是相同的。

查看英特尔网站上的最新版本,然后安装。 让推荐大小的RAM“预设2048”,然后尝试运行该应用程序。 事情应该正常工作。

是的,它应该是固定的,HAXM不工作。

HAXM有时可以工作; 与HAXM的经验目前是跨平台的零星。

例如,我已经在2009年末,iMac运行了10.8.5和i7处理器@ 2.8Ghz,Android SDK 22.6,所有的东西都在今天上午更新(03/05/14)。 API17将在此iMac机器上构build具有HAXM加速function的仿真器,API19扼杀。

我也有2013年初MBP 15“视网膜运行10.8.5和i7处理器@ 2.7Ghz,Android SDK 22.6,今天上午更新所有的好东西(03/05/14)API17将build立模拟器HAXM加速,API19也很好。

同样为我的(个人)2013年底MBP Retina 13“与双核心i5和小牛。

旧CPU(甚至是i7)缺less芯片级别的虚拟化,新的API19 x86映像需要HAXM才能运行。 如果API19不起作用,请给API17甚至16尝试一下。

在你的mac上打开finder然后Ctr + Alt + G键入this /Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

你会find模拟器加速器的安装程序,所以运行它,并设置你需要的内存修改它,然后重试运行你的android应用程序

如果您正在运行英特尔处理器,请确保通过在SDK Manager中选中此选项,通过SDK Manager安装HAXM(英特尔®硬件加速执行pipe理器)安装程序。 然后通过下面的path运行HAXM安装程序分机

 your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe 

还要检查HAX安装时分配的RAM大小,以便它适合模拟器的RAM大小。

本video展示了可能帮助您解决问题的所有必要步骤。

安装HAXM后,如果您遇到问题,该video也将帮助您。

在进行HAX安装时,增加分配的RAM大小,以便与要在“Intel x86 Emulator Accelerator(HAXM)”模式下启动的模拟器的RAM大小相匹配或更高一些,

一旦你成功了,你现在可以在控制台/日志中查看

在这里输入图像描述

您必须validation在执行HAX安装时分配的大小是否与AVD仿真器configuration中的大小相同。

你可以在这里看到法语: http : //blerow.blogspot.fr/2015/01/android-studio.html

在我的情况下,当我设置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 EI Capitan 10.11.4

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

Android Studio 2.1

棉花糖(23)x86 没有通过闪烁的Android图标屏幕甚至几个小时。

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

  • 启动Android(优化x应用程序)
  • 启动Android(启动应用程序)
  • 启动Android(更新联系人数据库)
  • 开始Android(整理引导),并在这里呆了几个小时

KitKat(19)x86工作成功 ,我可以在那里安装hello world。

从SDK Manager下载HAXM

从Android Studio打开您的SDKpipe理器,单击屏幕截图中显示的图标。

在这里输入图像描述

点击“Default Settings”对话框中的“Launch Standalone SDK Manager”。

在这里输入图像描述

检查节点“Extras> Intel x86 Emulator Accelerator(HAXM安装程序)”并继续进行HAXM下载。

在这里输入图像描述

安装或修改HAXM

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

%LOCALAPPDATA%\ Android的\ SDK \演员\英特尔\ Hardware_Accelerated_Execution_Manager

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

您可以在修改现有HAXM安装的同时增加分配给HAXM的内存大小。 我有一个32 GB的内存的机器,并希望同时启动多个AVD(用于自动化testing等),所以我已经为HAXM分配了8 GB的内存。

警告

如果您正在运行一个1 GB的AVD并将2 GB分配给HAXM,则无法运行另一个RAM超过1 GB的AVD。 当您修改或安装HAXM时,请确保Android设备监视器没有运行(只是为了避免任何意外)。

在这里输入图像描述

这些步骤在Windows平台上进行了testing,但通常也可以稍微修改应用于其他平台。

我的问题是,我不能再运行一个已经工作的模拟器,因为我已经退出了模拟器应用程序,但是这个过程并没有完全结束,所以我试图启动另一个模拟器,而前一个模拟器仍在运行。 在Mac上,我不得不使用活动监视器来查看其他进程并杀死它。 脚步:

  1. 打开Activity Monitor(在Utilities中或使用Command + Space)
  2. find进程名称,在我的情况下,qemu系统…
  3. select过程。
  4. 使用左上angular的“x”button强制进程退出。
  5. 我不必使用“强制退出”,只是简单的“退出”,但你也可以使用。

重新打开您的AVD设备configuration。 通过在AVDpipe理器中编辑设备。 继续selectAVD Android版本。 在右边的窗格中,按照该build议显示一个build议,所有的都将被修复。

盖克的解决scheme完美地工作。 小心:您提供的HAXM在所有正在运行的设备上使用。 所以如果你同时在手机和平​​板电脑上进行testing,每个都有1G的要求。 然后确保你的HAXM分配至less是2G。

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

如果您使用的是Android Studio,

  • 只要去工具 – > AVD manager。
  • 然后select模拟器,点击右边的铅笔button进行编辑。
  • 在新窗口中转到高级设置并将RAM值更改为1024

奇迹般有效。 🙂

android studio的截图