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:

image

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.

image

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  :-))

image

 

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:

image

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.

image

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

               

Agregar comentario

Loading