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

Posted

技术标签:

【中文标题】如何解决:“HAX 不工作,模拟器在模拟模式下运行”【英文标题】:How to fix: "HAX is not working and emulator runs in emulation mode" 【发布时间】:2014-01-28 16:38:33 【问题描述】:

问题是

我得到“HAX 不工作并且模拟器在模拟模式下运行”,这是否与 Intel x86 Emulator Accelerator (HAXM) 安装和运行 avd 且 cpu 设置为 CPU Intel Atom (x86) 有关?尽管在我安装 HAXM 后感觉 AVD 运行得更快,但此消息是否表明 AVD 性能受到阻碍。是否应该修复?如果是,如何修复?

我在 mac os x 10.9.1 上运行。

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

工具 android SDK 工具修订版 22.3 Android SDK 平台工具修订版 19.0.1 Android SDK Build-tools Rev 19.0.1 Android SDK 构建工具第 19 版

==

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

==

附加功能 Intel x86 Emulator Accelerator (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,将我的部署固定到模拟器。 【参考方案1】:

是的,它应该被修复,HAXM 不工作。 在您的 AVD 配置中设置了多少 RAM 使用?

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

【讨论】:

谢谢@ph0b,就是这样,HAXM 安装时分配了 1024 内存,而我的 avd 实例的内存分配设置为 1907。感谢您指出这一点。 HAXM 安装程序建议使用 1GB 默认值,但 Nexus 5 AVD 设置为使用 1536。将其设置回 1GB 即可! 谢谢。对于那些想知道的人,HAXM 安装程序文件的位置位于 ADT 包的 sdk/extras/intel 文件夹中。将光标放在 AVD 管理器中的 HAXM 条目上将显示确切位置。 @zhelon 显然配置 HAXM 的唯一方法是再次运行安装程序。 如果您使用的是 Windows 和 Android Studio,请执行以下操作。在 Android Studio 中:工具 > Android > AVD 管理器 > 您的设备 > 显示高级设置 > 将 RAM 设置为首选大小。在控制面板>程序和功能>英特尔硬件加速执行管理器>更改>手动设置>设置为首选大小。【参考方案2】:

如果您在 Mac 上,您可以通过 cask 使用 homebrew 安装 haxm,这是一个内置扩展(截至 2015 年),允许安装非开源和桌面应用程序(即 chrome、 firefox、eclipse等):

brew cask install intel-haxm 

Android 工作室

如果您使用的是 Android Studio,那么您可以通过菜单 ToolsSDK Manager,然后在 SDK Tools上获得相同的结果> 选项卡,选中 Intel x86 Emulator Accelerator (HAXM installer) 复选框,然后单击 Ok

【讨论】:

【参考方案3】:

我解决它的方法是将 AVD 内存限制和 HAXM 内存的大小设置为相等,即 1 GB = 1024 MB。 AVD 的内存限制不能高于 HAXM。

1.设置HAXM内存为1024M

更改 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 内存限制相同的大小

这对我有用。祝你好运!

【讨论】:

这对我也有用。如果您正在寻找 AVD 配置屏幕,它位于 Tools > Android > AVD Manager 如果你想同时运行多个 AVD,HAXM 最大 RAM 需要是所有运行 AVD 的总和,即两个 AVD @1024MB = 2048MB,所以:$ sudo ./HAXM\ installation -m 2048 【参考方案4】:

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

在此之后它正在工作

【讨论】:

我不得不重新安装这个应用程序并将内存设置为 768mb。【参考方案5】:

对于 Windows。

Android Studio:

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

Control Panel:

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

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

【讨论】:

+1 用于解释设置这些值的确切位置。互联网上太多的答案假设读者像我一样并不总是具备一定的知识水平:-)【参考方案6】:

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

【讨论】:

【参考方案7】:

是的,它应该被修复,HAXM 不工作。

HAXM 有时有效;目前跨平台使用 HAXM 的经验是零星的。

例如,我有 2009 年末运行 10.8.5 和 i7 处理器 @2.8Ghz、Android SDK 22.6 的 iMac,今天早上 (03/05/14) 更新了所有好东西。 API17 将在这台 iMac 机器上构建具有 HAXM 加速的模拟器,API19 窒息。

我还有 2013 年初的 MBP 15" Retina,运行 10.8.5 和 i7 处理器 @2.7Ghz,Android SDK 22.6,今天早上(2014 年 3 月 5 日)更新了所有好东西。API17 将构建具有 HAXM 加速的模拟器,API19效果也很好。

同样适用于我的(个人)2013 年末 MBP Retina 13",配备双核 i5 和 Mavericks。

旧 CPU(甚至 i7)缺少芯片级别的虚拟化,而新的 API19 x86 映像需要 HAXM 才能工作。如果 API19 不起作用,请尝试 API17 甚至 16。

【讨论】:

【参考方案8】:

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

your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

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

此video 显示了可能帮助您解决问题的所有必需步骤。

如果您在安装 HAXM 后遇到问题,此video 也会为您提供帮助。

【讨论】:

【参考方案9】:

在你的 Mac 上打开 finder 然后command + Alt + G 输入这个/Users/$yourMacNameHere/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

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

【讨论】:

上面的按键顺序对我不起作用,只是在 'sdk/extras/intel' 目录中查找 IntelHAXM_<version name>.dmg 文件并从那里运行安装程序 (Mac OSX)【参考方案10】:

在进行 HAX 安装时增加分配的内存大小,以便完全适合或比您要在“英特尔 x86 仿真器加速器 (HAXM)”模式下启动的模拟器的内存大小更大的空间,

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

【讨论】:

【参考方案11】:

您必须验证在进行 HAX 安装时分配的大小是否与 AVD 模拟器配置中的大小相同。

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

【讨论】:

【参考方案12】:

geckob 的解决方案完美运行。 注意:您提供的 HAXM 用于所有正在运行的设备。所以如果你同时在手机和平​​板上测试,每个都有1G的要求。然后确保您分配的 HAXM 至少为 2G。

【讨论】:

【参考方案13】:

从 SDK 管理器下载 HAXM

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

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

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

安装或修改 HAXM

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

%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 平台上测试的,但通常稍加修改也可以应用于其他平台。

【讨论】:

【参考方案14】:

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

    打开活动监视器(在实用程序中或使用 Command+Space) 找到进程名称,在我的例子中是 qemu-system... 选择进程。 使用左上角的“x”按钮强制退出进程。 我不必使用“强制退出”,只需简单的“退出”,但您可以使用其中任何一个。

【讨论】:

【参考方案15】:

在我的情况下,当我将 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 内存。

Android Studio 2.1

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

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

启动 Android(优化 x out of y 应用) 启动 Android(启动应用程序) 启动 Android(更新联系人数据库) 正在启动 Android(完成启动)并卡在此处数小时

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

【讨论】:

这是一个答案吗? @zeeawan 是的,HAXM 内存 1024 MB = AVD 内存 1024 MB 组合使 hax 开始工作。另外,这个答案解决了模拟器如何开始在 OS X 上为我工作。 我认为需要更多的叙述。 所以你是说你修复了错误,但你仍然遇到模拟器需要很长时间才能启动的问题? KitKat (19) x86 没问题。【参考方案16】:

重新打开您的 AVD 设备配置。通过在 AVD 管理器中编辑设备。继续选择 AVD Android 版本。在右侧窗格中,将显示一个建议,遵循该建议,所有内容都将得到修复。

【讨论】:

【参考方案17】:

分配给 HAX 的默认内存为 1024MB。 并且模拟器显然有 1536MB 用于 Nexus 5x api 25。

如果您使用的是 Android Studio,

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

就像一个魅力。 :)

【讨论】:

以上是关于如何解决:“HAX 不工作,模拟器在模拟模式下运行”的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Ajax 跨域请求不到的问题

如何解决包冲突问题

如何解决包冲突问题

如何解决ajax跨域问题

MySQL 的 10048问题,如何解决?

如何解决smartgit的冲突问题