关于android:如何解决:“HAX无法运行,仿真器在仿真模式下运行”

How to fix: “HAX is not working and emulator runs in emulation mode”

问题是

我得到"hax不工作,仿真器在仿真模式下运行",这与Intel x86 Emulator Accelerator(haxm)的安装和在CPU设置为CPU Intel Atom(x86)的情况下运行avd有关吗?即使在我安装了HAXM之后感觉AVD运行得更快,这个消息是否表明AVD性能受到了阻碍。是否应该修复?如果是,如何修复?

我正在运行Mac OS X 10.9.1。

列出通过Android SDK Manager在我的系统上安装的内容:

  • 工具
    • Android SDK工具版本22.3
    • Android SDK平台工具版本19.0.1
    • Android SDK构建工具版本19.0.1
    • Android SDK构建工具版本19

=

  • Android 4.4.2(API 19)
    • SDK平台
    • ARM EABI V7A系统映像
    • Intel x86 ATO系统映像
    • 谷歌API
    • Android SDK源代码

=

  • 额外的
    • 我和IntelX86 Emulator Accelerator(HAXM)也运行DMG安装程序,并在我发现后安装了热修复程序。

AVD设置

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

一旦我运行AVD:

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

我得到跟踪,模拟器最终加载

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

HAX is not working and emulator runs in emulation mode


是的,应该修好了,haxm坏了。在您的AVD配置中设置了多少RAM?

768M是一个很好的数字,但最重要的是,这个数字必须小于或等于您在安装haxm期间设置的内存使用量。您可以再次启动它的安装来修改它。


如果您在Mac上,则可以使用内置扩展名(截至2015年)的homebrew via cask安装haxm,该扩展名允许安装非开放源代码和桌面应用程序(如chrome、firefox、eclipse等):

1
brew cask install intel-haxm

安卓工作室

如果您使用的是Android Studio,那么您可以从菜单tools中获得相同的结果?sdk managerakbd,然后在sdk工具选项卡上,选中Intel x86 Emulator Accelerator(haxm安装程序)的复选框,然后单击ok


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

1。将haxm内存设置为1024 m

更改haxm内存的唯一方法是重新安装它。我用终端做的。在您的机器中找到硬件加速执行管理器。然后更改该文件夹的目录以运行安装脚本。

1
2
3
4
5
cd ~/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

-OR-

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

可能需要更改权限:

1
sudo chmod 755"HAXM installation"

然后:

1
2
3
4
5
./HAXM\ installation -m 1024

-OR-

sudo ./"HAXM installation" -m 1024

2。将虚拟设备设置为与HAXM内存限制相同的大小

enter image description here

这对我有用。祝你好运!


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

在这之后,它开始工作了


对于Windows。

Android Studio中:

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

Control Panel中:

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

最好两个地方的RAM大小相同。


检查Intel网站上最新版本的HAS并安装它。让RAM的大小达到建议的"预设2048",然后尝试运行应用程序。一切都会好起来的。


是的,应该修好了,haxm坏了。

HAXM有时可以工作;HAXM的经验目前在各个平台上都是零星的。

例如,我在2009年末的iMac上运行了10.8.5和i7处理器@2.8GHz,Android SDK 22.6,今天早上(2014年5月3日)更新了所有产品。API17将在这个IMAC机器上构建具有haxm加速的模拟器,API19将被扼杀。

我也有2013年初MBP 15"视网膜运行10.8.5和i7处理器@2.7GHz,Android SDK 22.6与所有的好东西今天早上更新(03/05/14)。API17将使用HAXM加速构建仿真器,API19也工作得很好。

我的(个人)2013年晚期MBP视网膜13"双核心i5和小牛。

旧版CPU(甚至i7)的芯片级的虚拟化正在进行中,而新的API19 x86映像需要HAXM才能工作。如果API19不起作用,尝试一下API17甚至16。


如果您运行的是英特尔处理器,请确保haxm(英特尔?Hardware Accelerated Execution Manager)安装程序通过sdk Manager在sdk Manager中选中此选项进行安装。然后通过下面的路径运行haxm安装程序ext

1
your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

还要检查在进行HAX安装时分配的RAM大小,以使其适合模拟器的RAM大小。

此视频显示了可能有助于解决问题的所有必要步骤。

如果安装HAXM后遇到问题,此视频也将帮助您。


在你的Mac电脑上打开查找器,然后打开Ctr + Alt + G。键入此/Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

你将找到模拟器加速器的安装程序,运行它并设置你需要修改的内存,然后重试运行你的Android应用程序。


我的问题是,我不能再运行一个有效的模拟器,因为我退出了模拟器应用程序,但进程没有完全结束,所以我试图在上一个模拟器仍在运行时启动另一个模拟器。在Mac上,我必须使用活动监视器来查看另一个进程并将其杀死。步骤:

  • 打开活动监视器(在实用程序中或使用命令+空格)
  • 找到进程名,在我的例子中,QEMU系统…
  • 选择进程。
  • 使用左上角的"x"按钮强制退出进程。
  • 我不需要使用"强制退出",只是简单的"退出",但你也可以使用。

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

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


    在执行HAX安装时增加分配的RAM大小,以完全适合或比要在"Intel x86 Emulator Accelerator(HAXM)"模式下启动的Emulator的RAM大小大一点,

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

    enter image description here


    Geckob的解决方案非常有效。警告:您提供的HAXM用于所有正在运行的设备。所以,如果你同时在手机和平板电脑上测试,并且每个都有一个1g的要求,那么确保你的haxm分配量至少是2g。


    在我的例子中,当我将haxm内存设置为avd内存时,这个错误被修复了。HAXM内存1024 MB=AVD内存1024 MB

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

    到目前为止,错误应该被修正。

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

    OS X El Capitan 10.11.4版

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

    安卓工作室2.1

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

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

    • 启动Android(优化x/y应用程序)
    • 启动Android(启动应用程序)
    • 启动Android(更新联系人数据库)
    • 启动android(完成引导)并在这里停留数小时。

    Kitkat(19)x86工作成功,我可以在那里安装Hello World。


    从SDK管理器下载haxm

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

    enter image description here

    单击"默认设置"对话框中的"启动独立SDK管理器"。

    enter image description here

    检查节点"Extras>Intel x86 Emulator Accelerator(HAXM Installer)",然后继续进行HAXM下载。

    enter image description here

    安装或修改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设备监视器没有运行(只是为了避免任何意外)。

    enter image description here

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


    重新打开AVD设备配置。通过在AVD管理器中编辑设备。继续选择AVD Android版本。在右窗格中,将按照该建议显示一个建议,所有建议都将被修复。


    分配给HAX的默认内存是1024MB。仿真器有1536MB,显然用于Nexus5xAPI 25。

    如果你使用的是Android Studio,

    • 只需转到工具->AVD管理器。
    • 然后选择模拟器并单击在右边的铅笔按钮上编辑。
    • 转到中的高级设置新窗口并将RAM值更改为1024

    很有魅力。:)

    screenshot of android studio