René Pacios

/* Overflow My Brain & More */

Como solucionar problema de memoria RAM insuficiente en el emulador de Android con Visual Studio

Como muchos ya sabréis, junto con la integración en Visual Studio de las tecnologías móviles, tipo PhoneGap/Cordova o Xamarin, Microsoft ha aprovechado el sistema de emulación basado en Hyper-V que teníamos para nuestros desarrollos para Windows Metros, Windows Phone y lo ha adaptado para que ahora podamos emular dispositivos Android, que en mi opinión funcionan bastante mejor y de una forma más ligera que los proporcionados junto con el SDK de Android.

Sin embargo, por muy bueno que me parezcan estos emuladores, hay un problema no muy bien documentado, que me persigue en cada nueva instalación, por lo que me he animado a escribir este post.

Cuando intentamos arrancar un proyecto de tipo Android, o tan sólo emulador desde la pantalla de gestión del Visual Studio (Tools –> Visual Studio Emulator for Android …) a no ser que tengamos una buena máquina con 16GB de RAM o muy despejada la memoria de nuestro pc, puede que nos muestre el siguiente mensaje de error:

error memoria insuficiente emulador android Visual Studio

Si quieres ir directamente a la solución pincha aquí aunque me gustaría que sigas leyendo todos los pasos dados, tal vez te aporte alguna cosilla más aparte de resolver el problema.

Si seguimos el enlace KB que nos indican, terminaréis en un artículo donde indica una posible solución para los emuladores de WP 8 si tenemos como sistema operativo Windows 8.1 pero no aplicable para los emuladores de Android si tenemos Windows 10 como es mi caso.

En la mayoría de los casos no vamos a necesitar 2Gb de memoria para probar nuestros desarrollos, con 1Gb en la mayoría de los casos será suficiente, así que debemos cambiar la configuración del emulador, pero donde?

Si vamos a buscar las opciones de Visual Studio, no hay nada, al menos yo no lo encontré. Mi Visual Studio está en inglés, y el error se muestra en castellano, esta fue mi 2º baza, directo a la configuración de Hyper-V, y ahí están, vemos los emuladores como cualquier otra máquina virtual.

error memoria insuficiente emulador android Visual Studio

Desde la consola de Hyper-V, podemos cambiar las características, incluso la memoria, pero esto tampoco nos sirve, Visual Studio va por libre, si intentamos arrancar de nuevo el emulador nos volverá a mostrar el error indicado al principio del post.

Un tema curioso, que todavía no he podido indagar a fondo como funciona por debajo,  podéis hacer la prueba, si iniciamos el emulador directamente desde Hyper-V arrancaremos una máquina linux (supongo que un Android rooteado  :-))


La solución:

Después e mucho indagar, parece que Visual Studio utiliza sus propios ficheros de configuración y que cada usuario del equipo posee sus propios emuladores, ¿donde están estos archivos? para encontrarlos podemos ir al panel de configuración de la máquina en Hyper-V y ver la ruta donde está configurado el disco duro virtual.

La ruta por defecto suele ser:

C:\Users[Nombre de usuario]\AppData\Local\Microsoft\VisualStudioEmulator\Android\Containers\Local\Devices

En esta carpeta encontraremos los archivos de configuración  .cfg de cada máquina:

error memoria insuficiente emulador android Visual Studio

Al abrir cualquiera de los ficheros de configuración, con el blog de notas o cualquier editor plano, nos encontramos una serie de parámetros, entre ellos device.vm.ram.size, donde podremos indicar la memoria que queremos asignar a nuestro emulador.

error memoria insuficiente emulador android Visual Studio

Tras cambiar los parámetros que nos interese, en este caso 1024 Mb de memoria RAM, como se ve en la imagen, tan sólo tendremos que reiniciar nuestro Visual Studio y comprobar que el emulador ya arranca sin problemas y podemos desplegar y depurar nuestros proyectos.

Espero que os haya resultado de utilidad.

Nos leemos, René.

Acerca de René

René Pacios es un apasionado de la tecnología, autodidacta, emprendedor, le encanta el desarrollo web, para moviles, aplicaciones, todo aquello que automatice tareas y haga que las máquinas trabajen para él. Es un gran fan de las tecnologías Microsoft, y le encanta estar a la última siempre que el tiempo se lo permite. Siempre quiso ser cantante, pero creo que en esta vida se va a quedar sólo en canta-mañanas

Comentarios (1) -

  1. The Casino at The Cromwell – Mapyro
    The Casino at The Cromwell – 창원 출장마사지 Mapyro, Nevada. View, map 사천 출장안마 and review of The Casino at The 제주 출장마사지 Cromwell Casino in 전라북도 출장마사지 Henderson, Nevada. 순천 출장마사지

    ResponderEliminar