Cómo solucionarlo: "HAX no funciona y el emulador se ejecuta en modo de emulación"

141

La pregunta es

Me sale "HAX no funciona y el emulador se ejecuta en modo de emulación", ¿está relacionado con la instalación del Acelerador de emulador Intel x86 (HAXM) y la ejecución de avd con CPU configurada en la CPU Intel Atom (x86)? Y aunque parece que AVD se ejecuta más rápido después de instalar HAXM, este mensaje indica que el rendimiento de AVD se ve obstaculizado. ¿Debería arreglarse y, de ser así, cómo?

Estoy corriendo en Mac OS x 10.9.1.

Listado de lo que está instalado en mi sistema a través del administrador de Android SDK:

  • Herramientas
    • Android SDK Tools Rev 22.3
    • Android SDK Platform-tools rev 19.0.1
    • Android SDK Build-tools Rev 19.0.1
    • Android SDK Build-tools Rev 19

==

  • Android 4.4.2 (API 19)
    • Plataforma SDK
    • Imagen del sistema ARM EABI v7a
    • Imagen del sistema Intel x86 Ato
    • API de Google
    • Fuentes para Android SDK

==

  • Extras
    • Intel x86 Emulator Accelerator (HAXM) Y TAMBIÉN también ejecuto el instalador de dmg, e instalé una reparación, después de que me enteré.

AVD configurado

  • Plataforma 4.4.2
  • Nivel API 19
  • CPU Intel Atom (x86)

Una vez que ejecuto avd:

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

me sigue y el emulador finalmente se carga

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

HAX is not working and emulator runs in emulation mode
GnrlBzik
fuente
Recibí este error, pero mi emulador ya se estaba ejecutando, así que mi verdadero problema fue que el objetivo de Visual Studio era iPhone en lugar de cualquier CPU , lo que solucionó mi implementación en un simulador.
Jaider

Respuestas:

200

Sí, debe repararse, HAXM no funciona. ¿Cuánta RAM está configurada para usar dentro de su configuración AVD?

768M es un buen número para él, pero lo más importante es que este número debe ser menor o igual al uso de memoria que configuró durante la instalación de HAXM. Puede iniciar su instalación nuevamente para modificarla.

ph0b
fuente
9
gracias @ ph0b, eso es todo, HAXM se instaló con una asignación de 1024 para la memoria y mi instancia de avd tenía la asignación de memoria establecida en 1907. gracias por señalar esto.
GnrlBzik
44
El instalador de HAXM sugirió un valor predeterminado de 1 GB, pero el AVD Nexus 5 está configurado para usar 1536. ¡Vuelva a configurarlo en 1 GB y listo!
aalaap
14
Gracias. Para aquellos que se preguntaban, la ubicación del archivo instalador de HAXM se encuentra en la sdk/extras/intelcarpeta de su paquete ADT. Al colocar el cursor en la entrada HAXM de su AVD Manager, se revelará la ubicación exacta.
Koh
2
@zhelon aparentemente la única forma de configurar HAXM es ejecutar el instalador nuevamente.
ThomasW
23
Si está utilizando Windows y Android Studio, haga lo siguiente. En Android Studio: Herramientas> Android> Administrador AVD> Su dispositivo> Mostrar configuración avanzada> Configure la RAM al tamaño preferido. En Panel de control> Programas y características> Intel Hardware Accelerated Execution Manager> Cambiar> Establecer manualmente> Establecer en tamaño preferido.
Neurotransmisor
66

Si está en una Mac, puede instalar haxmusando homebrew a través de cask, que es una extensión incorporada (a partir de 2015) que permite instalar aplicaciones de código abierto y de escritorio (es decir, Chrome, Firefox, Eclipse, etc.):

brew cask install intel-haxm 

Android Studio

Si está utilizando Android Studio, puede lograr el mismo resultado desde el menú ToolsSDK Manager, y luego en la pestaña Herramientas del SDK , seleccione la casilla de verificación del Acelerador de emulador Intel x86 (instalador HAXM) y haga clic Ok.

ccpizza
fuente
49

La forma en que lo resolví es estableciendo el límite de memoria AVD y la memoria HAXM para que tengan el mismo tamaño, que es 1 GB = 1024 MB. El AVD no puede tener un límite de memoria más alto que el HAXM.

1. Configuración de la memoria HAXM para 1024 M

La única forma de cambiar la memoria HAXM es instalándola nuevamente. Lo hice usando la terminal. Localice Hardware_Accelerated_Execution_Manager en su máquina. Luego cambie el directorio de esa carpeta para ejecutar el script de instalación.

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

-OR-

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

Puede necesitar cambiar los permisos:

sudo chmod 755 "HAXM installation"

Luego:

./HAXM\ installation -m 1024

-OR-

sudo ./"HAXM installation" -m 1024

2. Configuración del dispositivo virtual del mismo tamaño con límite de memoria HAXM

ingrese la descripción de la imagen aquí

Esto funciona para mi. ¡Buena suerte!

geckob
fuente
2
Esto funcionó para mí también. Si está buscando la pantalla de configuración AVD, está en Herramientas> Android> Administrador AVD
stephenspann
2
Si desea tener más de un AVD ejecutándose al mismo tiempo, la RAM máxima de HAXM debe ser el total para todos los AVD en ejecución, es decir, dos AVD @ 1024MB = 2048MB, entonces:$ sudo ./HAXM\ installation -m 2048
Jason Hartley
20

Para ventanas.

En Android Studio:

Herramientas > Android > AVD Manager > Su dispositivo > Icono de lápiz > Mostrar configuración avanzada > Memoria y almacenamiento > RAM > Configure la RAM en su tamaño preferido.

En Control Panel:

Programas y características > Intel Hardware Accelerated Execution Manager > Cambiar > Configurar manualmente > Configure la RAM a su tamaño preferido.

Es mejor que los tamaños de RAM configurados en ambos lugares sean iguales.

Neurotransmisor
fuente
2
+1 para explicar el lugar exacto para establecer estos valores. Demasiadas respuestas en Internet suponen un nivel de conocimiento que el lector, como yo, no siempre tiene :-)
MikeKulls
4

Verifique la última versión de Has en el sitio web de Intel e instálela. Deje el carnero en el tamaño recomendado "preestablecido 2048", luego intente ejecutar la aplicación. Las cosas deberían funcionar bien.

Mohamed
fuente
2

Sí, debe repararse, HAXM no funciona.

HAXM a veces funciona; La experiencia con HAXM es actualmente esporádica en todas las plataformas.

Por ejemplo, tengo un iMac de finales de 2009 con 10.8.5 y procesador i7 a 2.8Ghz, Android SDK 22.6 con todas las novedades actualizadas esta mañana (03/05/14). API17 construirá emuladores con aceleración HAXM en esta máquina iMac, API19 se ahoga.

También tengo a principios de 2013 MBP 15 "Retina con 10.8.5 y procesador i7 a 2.7Ghz, Android SDK 22.6 con todas las ventajas actualizadas esta mañana (03/05/14). API17 construirá emuladores con aceleración HAXM, API19 también funciona muy bien .

Lo mismo para mi (personal) finales de 2013 MBP Retina 13 "con i5 de doble núcleo y Mavericks.

Hay algo que sucede para la virtualización a nivel de chip que falta en las CPU más antiguas (incluso las i7) que las nuevas imágenes API19 x86 necesitan para que HAXM funcione. Si API19 no funciona, pruebe API17 o incluso 16.

HAL-9000
fuente
2

En tu Mac, abre el buscador y Ctr + Alt + G luego escribe esto/Users/${yourMacNameHere}/Library/Android/sdk/extras/intel/Hardware_Accelerated_Execution_Manager

vas a encontrar el instalador del acelerador de emulador, así que ejecútalo y configura la memoria que necesitas modificar y vuelve a intentar ejecutar tu aplicación de Android

Zouhair Kasmi
fuente
La secuencia de teclas anterior no funcionó para mí, solo busqué el IntelHAXM_<version name>.dmgarchivo en el directorio 'sdk / extras / intel' y ejecuté el instalador desde allí (Mac OSX)
kip2
2

si está ejecutando el procesador Intel, asegúrese de que el instalador HAXM (Intel® Hardware Accelerated Execution Manager) esté instalado a través del SDK Manager marcando esta opción en SDK Manager. y luego ejecute el instalador HAXM ext a través de la ruta a continuación

your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe

también verifique el tamaño de ram asignado mientras realiza la instalación de HAX para que se ajuste al tamaño de ram de su emulador.

Este video muestra todos los pasos necesarios que pueden ayudarlo a resolver el problema.

Este video también lo ayudará si tiene problemas después de instalar HAXM.

Yogesh patel
fuente
1

Aumente el tamaño de ram asignado mientras realiza la instalación de HAX, para que quepa en un espacio exactamente o un poco más alto que el tamaño de ram del emulador que desea iniciar en el modo "Acelerador de emulador Intel x86 (HAXM)",

Una vez que tenga éxito con eso, ahora puede ver esto en la consola / registro

ingrese la descripción de la imagen aquí

Bala Prasanna
fuente
1

La solución de geckob funciona perfectamente. Precaución: el HAXM que proporciona se utiliza en todos los dispositivos en ejecución. Entonces, si está probando en un teléfono y una tableta al mismo tiempo y cada uno tiene un requisito de 1G. Luego, asegúrese de que su HAXM asignado sea al menos 2G.

postre
fuente
1

Descargar HAXM desde SDK Manager

Abra su SDK Manager desde Android Studio, haga clic en el icono que se muestra en la captura de pantalla.

ingrese la descripción de la imagen aquí

Haga clic en "Iniciar el Administrador de SDK independiente" en el cuadro de diálogo "Configuración predeterminada".

ingrese la descripción de la imagen aquí

Compruebe el nodo "Extras> Acelerador de emulador Intel x86 (instalador HAXM)" y continúe con la descarga de HAXM.

ingrese la descripción de la imagen aquí

Instalar o modificar HAXM

Ahora puede acceder con la instalación (o modificar el installtino existente) de HAXM accediendo a la ubicación de descarga. Ingrese esta ruta en "ejecutar"

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

y haga doble clic en el archivo "intelhaxm-android.exe"

Puede aumentar el tamaño de la memoria asignada a HAXM mientras modifica la instalación de HAXM existente. Tengo una máquina con 32 GB de RAM y me gustaría lanzar varios AVD al mismo tiempo (para pruebas automatizadas, etc.), así que he asignado 8 GB a HAXM.

Consideración

Si está ejecutando un AVD de 1 GB y asignó 2 GB a HAXM, no puede ejecutar otro AVD con RAM de más de 1 GB. Asegúrese de que Android Device Monitor no se esté ejecutando cuando esté modificando o instalando HAXM (solo para evitar sorpresas).

ingrese la descripción de la imagen aquí

Estos pasos se prueban en la plataforma Windows, pero en general también podrían aplicarse a otras plataformas con una ligera modificación.

AB
fuente
1

Mi problema era que ya no podía ejecutar un emulador que había funcionado porque había salido de la aplicación del emulador, pero el proceso no había finalizado por completo, por lo que estaba tratando de iniciar otro emulador mientras el anterior todavía se estaba ejecutando. En una Mac, tuve que usar el Monitor de actividad para ver el otro proceso y matarlo. Pasos:

  1. Open Activity Monitor (en Utilities o usando Command + Space)
  2. Localice el nombre del proceso, en mi caso, qemu-system ...
  3. Selecciona el proceso.
  4. Fuerce el proceso para salir utilizando el botón 'x' en la esquina superior izquierda.
  5. No tuve que usar 'Force Quit', solo el simple 'Quit', pero puedes usar cualquiera.
rjferguson
fuente
1

En mi caso, este error se solucionó cuando configuré la memoria HAXM igual a la memoria AVD. Memoria HAXM 1024 MB = memoria AVD 1024 MB

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

Hasta este punto, el error debe corregirse.

Ahora estoy enumerando mi entorno específico en caso de que pueda ser de alguna ayuda para alguien que usa OS X.

OS X El Capitan 10.11.4

MacBook (13 pulgadas), Intel Core 2 Duo a 2 GHz, 4 GB de RAM.

Android Studio 2.1

Marshmallow (23) x86 no pasó la pantalla parpadeante del ícono de Android por horas iguales.

Lollipop (22) x86 pasó la pantalla del icono de Android parpadeante y luego mostró

  • Inicio de Android (Optimización de aplicaciones x de y)
  • Iniciando Android (Iniciando aplicaciones)
  • Inicio de Android (Actualización de la base de datos de contactos)
  • Iniciando Android (terminando el arranque) y permaneció atascado aquí durante horas .

KitKat (19) x86 funcionó con éxito y pude instalar el mundo hola allí.

zeeawan
fuente
¿Es esta una respuesta? @zeeawan
GnrlBzik
Sí, la memoria HAXM 1024 MB = la combinación de memoria AVD 1024 MB hace que el hax comience a funcionar. Además, esta respuesta se ocupa de cómo el emulador comenzó a trabajar para mí en OS X.
zeeawan
Necesito más narrativa, creo.
GnrlBzik
Entonces, ¿estás diciendo que arreglaste el error pero aún tienes problemas con el emulador que tarda años en arrancar?
Sam
Estuvo bien con KitKat (19) x86.
zeeawan
0

Vuelva a abrir la configuración de su dispositivo AVD. editando dispositivo en el administrador AVD. proceda a seleccionar la versión AVD de Android. En el panel derecho se muestra una recomendación, siga esa recomendación y todo se solucionará.

Hasan
fuente
0

La memoria predeterminada asignada a HAX es 1024 MB. Y el emulador tiene 1536MB aparentemente para Nexus 5x api 25.

si estás usando Android Studio,

  • solo vaya a herramientas -> Administrador AVD.
  • Luego seleccione el emulador y haga clic en el botón de lápiz a la derecha para editar.
  • Vaya a la configuración avanzada en la nueva ventana y cambie el valor de RAM a 1024

Funciona de maravilla. :)

captura de pantalla de android studio

abe312
fuente