Как исправить: «HAX не работает, а эмулятор работает в режиме эмуляции»


141

Вопрос

Я получаю сообщение «HAX не работает, а эмулятор работает в режиме эмуляции». Связано ли это с установкой ускорителя эмулятора Intel x86 (HAXM) и запуском avd с процессором Intel Atom (x86)? И хотя мне кажется, что AVD работает быстрее после того, как я установил HAXM, указывает ли это сообщение на то, что производительность 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 Rev 19

==

  • Android 4.4.2 (API 19)
    • Платформа SDK
    • Образ системы ARM EABI v7a
    • Образ системы Intel x86 Ato
    • API Google
    • Исходники для Android SDK

==

  • Дополнительно
    • Intel x86 Emulator Accelerator (HAXM) И я ТАКЖЕ запускаю установщик dmg и установил исправление после того, как узнал об этом.

AVD настроен

  • Платформа 4.4.2
  • API уровня 19
  • Процессор 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, а не любой процессор , что исправило мое развертывание в симуляторе.
Jaider

Ответы:


200

Да, это нужно исправить, HAXM не работает. Какой объем оперативной памяти установлен для использования в вашей конфигурации AVD?

768M - хорошее число для этого, но, что важнее всего, это число должно быть меньше или равно использованию памяти, которое вы установили во время установки HAXM. Вы можете запустить его установку снова, чтобы изменить его.


9
спасибо @ ph0b, вот и все, HAXM был установлен с выделением памяти 1024, а мой экземпляр avd имел выделение памяти 1907. Спасибо, что указали на это.
GnrlBzik

44
Установщик HAXM предложил 1 ГБ по умолчанию, но Nexus 5 AVD настроен на использование 1536. Верните 1 ГБ, и мы в игре!
aalaap

14
Спасибо. Для тех, кому интересно, расположение установочного файла HAXM находится в sdk/extras/intelпапке вашего пакета ADT. Поместив курсор на запись HAXM в вашем AVD Manager, вы увидите точное местоположение.
Ко

2
@zhelon, по-видимому, единственный способ настроить HAXM - снова запустить установщик.
ThomasW

23
Если вы используете Windows и Android Studio, сделайте следующее. В Android Studio: Инструменты> Android> AVD Manager> Ваше устройство> Показать дополнительные настройки> Установить желаемый размер ОЗУ. Откройте Панель управления> Программы и компоненты> Intel Hardware Accelerated Execution Manager> Изменить> Установить вручную> Установить на предпочтительный размер.
Neurotransmitter

66

Если вы используете Mac, вы можете установить его haxmс помощью homebrew через cask, которое является встроенным расширением (по состоянию на 2015 год), которое позволяет устанавливать приложения с открытым исходным кодом и настольные приложения (например, chrome, firefox, eclipse и т. Д.):

brew cask install intel-haxm 

Android Studio

Если вы используете Android Studio, вы можете добиться того же результата из меню ToolsSDK Manager, а затем на вкладке « Инструменты SDK » установите флажок для Intel x86 Emulator Accelerator (установщик HAXM) и нажмите Ok.


49

Я решил это, установив предел памяти AVD и память HAXM равными по размеру, что составляет 1 ГБ = 1024 МБ. 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»
stephenspann,

2
Если вы хотите, чтобы одновременно работало более одного AVD, максимальный объем ОЗУ HAXM должен быть общим для всех работающих AVD, то есть два AVD @ 1024 МБ = 2048 МБ, поэтому:$ sudo ./HAXM\ installation -m 2048
Джейсон Хартли,


20

Для Windows.

В Android Studio:

Инструменты > Android > AVD Manager > Ваше устройство > Значок карандаша > Показать дополнительные настройки > Память и хранилище > ОЗУ > Установите желаемый размер ОЗУ.

В Control Panel:

Программы и компоненты > Intel Hardware Accelerated Execution Manager > Изменить > Установить вручную > Установить желаемый размер ОЗУ.

Лучше, чтобы размеры RAM в обоих местах были одинаковыми.


2
+1 за объяснение точного места для установки этих значений. Слишком много ответов в Интернете предполагают уровень знаний, который у читателя, такого как я, не всегда есть :-)
MikeKulls

4

Проверьте последнюю версию Has на веб-сайте Intel и установите ее. Дайте барабану рекомендованный размер «предустановленный 2048», затем попробуйте запустить приложение. Все должно работать нормально.


2

Да, это нужно исправить, HAXM не работает.

HAXM иногда работает; в настоящее время опыт работы с HAXM на разных платформах носит спорадический характер.

Например, у меня iMac конца 2009 года с процессором 10.8.5 и i7 с частотой 2,8 ГГц, Android SDK 22.6 со всеми новинками, обновленными сегодня утром (03/05/14). API17 будет строить эмуляторы с ускорением HAXM на этом компьютере iMac, API19 подавляется.

У меня также есть 13-дюймовый MBP Retina начала 2013 года с процессором 10.8.5 и i7 с частотой 2,7 ГГц, Android SDK 22.6 со всеми новинками, обновленными сегодня утром (14.03.14). API17 будет создавать эмуляторы с ускорением HAXM, API19 тоже отлично работает .

То же самое для моего (личного) MBP Retina 13 "конца 2013 года с двухъядерным процессором i5 и Mavericks.

Что-то происходит для виртуализации на уровне чипа, отсутствующего в старых процессорах (даже i7), что требуется новым изображениям API19 x86 для работы HAXM. Если API19 не работает, попробуйте API17 или даже 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

Если вы используете процессор Intel, убедитесь, что установщик HAXM (Intel® Hardware Accelerated Execution Manager) установлен через SDK Manager, отметив эту опцию в SDK Manager. а затем запустите установщик HAXM ext по указанному ниже пути

your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

также проверьте размер оперативной памяти, выделенной при установке HAX, чтобы она соответствовала размеру оперативной памяти вашего эмулятора.

В этом видео показаны все необходимые шаги, которые могут помочь вам решить проблему.

Это видео также поможет вам, если вы столкнетесь с проблемой после установки HAXM.


1

Либо увеличьте размер оперативной памяти, выделенной при установке HAX, чтобы она соответствовала точно, либо немного больше, чем размер оперативной памяти эмулятора, который вы хотите запустить в режиме «Intel x86 Emulator Accelerator (HAXM)»,

Как только вам это удастся, вы сможете просмотреть это в консоли / журнале.

введите описание изображения здесь



1

Решение geckob работает отлично. Внимание! Предоставляемый вами HAXM используется на всех работающих устройствах. Итак, если вы одновременно тестируете телефон и планшет, и для каждого из них требуется 1G. Затем убедитесь, что ваш выделенный HAXM составляет не менее 2G.


1

Загрузите HAXM из SDK Manager

Откройте свой SDK Manager из Android Studio, щелкните значок, показанный на снимке экрана.

введите описание изображения здесь

Щелкните «Запустить автономный диспетчер SDK» в диалоговом окне «Параметры по умолчанию».

введите описание изображения здесь

Проверьте узел «Дополнительно> Intel x86 Emulator Accelerator (установщик HAXM)» и продолжите загрузку HAXM.

введите описание изображения здесь

Установка или изменение HAXM

Теперь вы можете получить доступ к установке (или изменению существующей installtino) HAXM, перейдя к месту загрузки. Введите этот путь в "запустить"

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

и дважды щелкните файл "intelhaxm-android.exe"

Вы можете увеличить размер памяти, выделенной для HAXM, при изменении существующей установки HAXM. У меня есть машина с 32 ГБ ОЗУ, и я хотел бы запустить несколько AVD одновременно (для автоматического тестирования и т. Д.), Поэтому я выделил 8 ГБ для HAXM.

Предостережение

Если вы используете один AVD размером 1 ГБ и выделите 2 ГБ для HAXM, вы не сможете запустить другой AVD с ОЗУ более 1 ГБ. Пожалуйста, убедитесь, что Android Device Monitor не запущен, когда вы изменяете или устанавливаете HAXM (чтобы избежать сюрпризов).

введите описание изображения здесь

Эти шаги протестированы на платформе Windows, но, как правило, могут применяться и на других платформах с небольшими изменениями.


1

Моя проблема заключалась в том, что я больше не мог запускать эмулятор, который работал, потому что я вышел из приложения эмулятора, но процесс не был полностью завершен, поэтому я пытался запустить другой эмулятор, пока предыдущий все еще работал. На Mac мне пришлось использовать Activity Monitor, чтобы увидеть другой процесс и убить его. Шаги:

  1. Откройте Activity Monitor (в утилитах или с помощью Command + Space)
  2. Найдите имя процесса, в моем случае qemu-system ...
  3. Выберите процесс.
  4. Чтобы завершить процесс, нажмите кнопку «x» в левом верхнем углу.
  5. Мне не нужно было использовать «Force Quit», просто «Quit», но вы можете использовать и то, и другое.

1

В моем случае эта ошибка была исправлена, когда я установил память HAXM равной памяти AVD. Память HAXM 1024 МБ = память AVD 1024 МБ

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 дюймов), Intel Core 2 Duo 2 ГГц, 4 ГБ ОЗУ.

Android Studio 2.1

Marshmallow (23) x86 даже несколько часов не пропускал мигающий экран значков Android .

Lollipop (22) x86 передал мигающий экран значка Android, а затем показал

  • Запуск Android (оптимизация приложений x из y)
  • Запуск Android (запуск приложений)
  • Запуск Android (обновление базы данных контактов)
  • Запускал Android (завершение загрузки) и оставался здесь на несколько часов .

KitKat (19) x86 работал успешно, и я смог установить туда hello world.


это ответ? @zeeawan
GnrlBzik

Да, память HAXM 1024 МБ = память AVD 1024 МБ, комбинация заставляет hax работать. Кроме того, в этом ответе рассказывается, как эмулятор начал работать у меня на OS X.
zeeawan

Думаю, нужно больше повествования.
GnrlBzik

Так вы говорите, что исправили ошибку, но у вас все еще есть проблемы с загрузкой эмулятора?
Сэм

С KitKat (19) x86 все было нормально.
zeeawan

0

Снова откройте конфигурацию устройства AVD. путем редактирования устройства в диспетчере AVD. перейти к выбору версии AVD Android. На правой панели рекомендация отображается следует , что рекомендации и все будет исправлено.


0

По умолчанию для HAX выделено 1024 МБ памяти. И эмулятор имеет 1536 МБ, по-видимому, для Nexus 5x api 25.

если вы используете Android Studio,

  • просто зайдите в Инструменты -> Менеджер AVD.
  • Затем выберите эмулятор и нажмите кнопку карандаша справа для редактирования.
  • В новом окне перейдите к дополнительным настройкам и измените значение RAM на 1024.

Работает как шарм. :)

скриншот андроид студии

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.