8 votos

¿Cómo puedo ejecutar el emulador de Android junto con otra máquina virtual?

Cada vez que abro un emulador de Android cuando ya se está ejecutando otro tipo de VM, me aparecen los mensajes de error "habituales":

emulador: Fallo en la sincronización del registro de la vcpu
emulador: Fallo en la sincronización del contexto HAX vcpu

Aquí se recomienda no ejecutar otra VM, pero ¿qué pasa si necesito la otra VM para el desarrollo, o para ejecutar el servidor para mi aplicación Android en él? ¿Hay alguna manera de ejecutar una máquina virtual de Linux y el emulador de Android al mismo tiempo? Mi sistema operativo anfitrión es OSX si eso importa.

0 votos

Así que "otra VM" no está ejecutando Android (por ejemplo, el proyecto Android-x86 que se ejecuta normalmente con VirtualBox), sino que es simplemente "otra VM" (por ejemplo, ejecutando Linux o Windows), como en la pregunta vinculada - por lo que es básicamente el mismo problema?

1 votos

ES la misma cuestión, excepto que allí querían poder ejecutar el emulador de Android, y cerrar otras VM-s era una solución suficiente, y en mi caso declaré explícitamente que necesito ambas VM-s corriendo lado a lado.

0 votos

Esto no es sobre el desarrollo específicamente por lo que Stack Overflow no sería un buen ajuste. Super User probablemente lo sería pero, como aquí apoyamos el uso de emuladores, creo que está bien que se quede. He incorporado algo de información a la pregunta y he limpiado algunos comentarios.

2voto

Aeyoun Puntos 165

No puedes ejecutar dos pilas de emulación diferentes en tu procesador al mismo tiempo. Lo siento, no puede ser.

Actualización: Tu procesador sólo puede ejecutar un sistema de emulación a la vez. Los módulos del kernel se "reservan" el derecho a utilizar las capacidades de emulación del procesador, excluyendo cualquier otro emulador que quiera utilizarlo. Así que sólo puedes usar VMware, VirtualBox, HyperV, etc. por separado.

0 votos

¿Qué es la "pila de emulación"? Soy capaz de ejecutar múltiples emuladores andorid, y también soy capaz de ejecutar múltiples VM-s en Virtualbox. ¿Dices que no hay posibilidad de que pueda ejecutar una VM en VirtualBox y un emulador de Android desde Android Studio?

3 votos

Aunque es posible que sea cierto, ¿le importa dar razones? Estaría bien cualquier apoyo a su afirmación (con algunos antecedentes).

2 votos

@Gavriel lo que Aeyoun probablemente quiere decir es que si bien puedes ejecutar múltiples VMs de VirtualBox en paralelo, es la misma "Pila" en la que se ejecutan (VirtualBox, que las gestiona). Pero no se puede iniciar una "pila" diferente (por ejemplo, VMWare o emulador de Android), mientras que ya hay uno en ejecución, ya que probablemente hay algún bloqueo de recursos en el lugar. Esa es sólo la idea que tengo, no tengo ninguna prueba de esto - que es la razón por la que pedí a Aeyoun para proporcionar algunos antecedentes ;)

2voto

Mikhail M Puntos 24

Sí, hay una manera de ejecutar una máquina virtual de Linux y el emulador de Android al mismo tiempo.

Tengo una configuración que hace exactamente esto ahora, y es razonablemente simple. Para resolver el problema anterior, puede ejecutar Genymotion como su emulador de Android, y Virtualbox para su máquina virtual Linux VM invitado.

Esto contrarresta el problema descrito en las respuestas anteriores, ya que Genymotion utiliza Virtualbox "por debajo" como hipervisor, lo que significa que ambas máquinas virtuales (el invitado Linux y el emulador Android) se ejecutan en el mismo hipervisor. Esto es exactamente para lo que están hechos los hipervisores.

Además, para aclarar el significado del cartel en el enlace que has dado, que afirma "se recomienda no ejecutar otra VM", creo que lo que quiere decir es que no se pueden ejecutar también otros hipervisores (ahí se describen Docker y Virtualbox) en paralelo con Android Emulator, por las razones descritas por otras respuestas aquí.

0 votos

Esta respuesta no sirve de nada si no hay enlaces y direcciones adicionales. No está nada claro cómo se supone que funciona esto o cómo empezar.

0voto

Matthew Read Puntos 35808

emulador: Fallo en la sincronización del contexto HAX vcpu

HAX significa H ardware A e acelerado X ecuación. Realmente no es posible ejecutar 2 hipervisores diferentes correctamente utilizando la aceleración por hardware - no saben lo que el otro está haciendo y ambos tratarían de utilizar el hardware para sus propios fines. Intentar hacerlo es más o menos lo mismo que intentar ejecutar dos SO no virtualizados al mismo tiempo, lo que claramente no puede funcionar.

Ahora bien, es posible que puedas ejecutar una máquina virtual basada puramente en software al mismo tiempo que un emulador de Android, pero su rendimiento se resentirá mucho (dependiendo de para qué lo uses). He comprobado que el emulador de Android es tan lento que no sirve para nada sin la aceleración por hardware, así que definitivamente no querrás desactivarla.

Sin embargo, Memu parece bastante eficaz y funciona bien con VMware en mi máquina, así que podría ser una opción para ti. Sin embargo, no he probado ningún desarrollo con Memu; no he podido conseguir que ADB funcione.

-1voto

James Scholes Puntos 251

Efectivamente, es posible. Necesita ejecutar la versión 6.1.1 de HAXM como mínimo.

Si se actualiza a esta versión, funcionará.

Después de la actualización, asegúrese de que la versión correcta se está ejecutando mediante la ejecución:

$ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh -v

Si informa de una versión anterior, es posible que tengas que ejecutar el instalador manualmente ejecutando:

sudo $ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X