Error al asignar memoria: 8

369

Desde hoy, cuando traté de ejecutar una aplicación en NetBeans en una plataforma Android 2.3.3, me muestra que:

Error al asignar memoria: 8

Esta aplicación ha solicitado el tiempo de ejecución para terminarlo de una manera inusual. Póngase en contacto con el equipo de soporte de la aplicación para obtener más información.

y el emulador no quiere comenzar.

Esto es por primera vez cuando lo veo, y Google no tiene respuestas para esto, lo intenté incluso con 2 versiones de NetBeans 6.9.1 y 7.0.1, todavía el mismo error.

Δεηις Hoςς
fuente
3
Es curioso por qué estás usando NetBeans vs Eclipse. Utilizo NetBeans para otras cosas (es decir, php), pero me ha resultado más fácil usar eclipse para Android. ¿Cuáles son, en su opinión, los beneficios sobre el eclipse?
SBerg413
3
Simplemente nunca usé Eclipse antes, pero no sé por qué, lo odio, la razón, incluso es complicado en GUI vs NetBeans, pero por el momento lo estoy descargando, para intentarlo, si el problema desaparece, haré Cosas de Android solo en él.
Denees
47
Wow, ese comentario fue una masacre de comas. De todos modos, asegúrese de que su AVD esté usando una cantidad adecuada de RAM (es decir, suficiente para funcionar pero no más de lo que su computadora puede manejar). Esto se establece cuando crea el dispositivo virtual.
Glendon Trullinger
2
Solo como referencia, tengo un Core i7 con 16 gb de ram, maxxed ram en mis AVD y desafortunadamente todos están rezagados: /
Jack
1
Tengo una máquina con Windows 8 de 64 bits que se ejecuta en un procesador Intel Core i7. Tuve que cambiar la configuración de ram para este AVD (Nexus 7) a 512 mb para que se ejecute.
IgorGanapolsky

Respuestas:

373

Me lo imaginé. El problema estaba en la cantidad de ram que había especificado para la máquina virtual, y era 1024MB, ahora tengo 512MB y está bien, ahora necesito encontrar cómo mejorar esta cantidad de ram, 512 no es tanto, y La máquina es un poco lenta.

Denees
fuente
20
Tengo el mismo problema con esto. Tengo 8 GB de RAM en mi máquina, con 6 GB libres mientras que el emulador de Android me dice que no puede asignar 1 GB.
Strozykowski
55
También tengo 8 GB de RAM, pero SDK me dice que no puedo usarlo más de 512 :)
Denees
55
Una solución más para agregar. A veces, configurar RAM en valores más bajos no funciona. En ese caso, intente iniciar el emulador desde la línea de comandos con algo comoemulator-x86 -avd <your_avd_name>
Mykhailo Gaidai
14
Acabo de recibir la solución: necesito especificar la resolución AVD con fuerza: 800 x 1280. Inicia mi AVD como lo que necesitaba
Nirav Shah,
44
El problema proviene de cualquier máscara de pantalla que agrega un valor de 1024 hw.ramSizeen config.ini ( Device Ram Sizeen la lista de Hardware de la GUI). Asegúrese de seleccionar una "máscara" que tenga un valor más bajo, o de utilizar una resolución manual y eliminar esta línea de la lista de Hardware; no puede eliminarla cuando se selecciona una máscara.
RedGlyph el
61

Refiriéndose a Android: no se pudo asignar memoria y su primer comentario bajo respuesta aceptada, cambiar "1024" a "1024MB" me ayudó. Patético, pero funciona.

Voltres Fénix
fuente
29
El emulador no reconoce 'MB', lo que le obliga a utilizar el valor predeterminado de 256 MB. ¡Tenga en cuenta que la cantidad que especifique no es la que obtendrá!
RedGlyph el
1
Mirando en Aplicaciones, Runnning, enumera la cantidad total de memoria a aproximadamente 240 MB, por lo que parece que vuelve a 256 MB.
jishi
Agregue en la ventana Ejecutar configuraciones el parámetro -memoria 512 de este enlace lo arregló para mí
GatesReign
43

En mi caso:

  • Usando el WXGA720 integrado para simular un dispositivo de 720p, siempre recibí este error
  • Establecer manualmente la resolución AVD a 720 x 1280, funciona para mí

espero que ayude ~

RRTW
fuente
Similar aquí, el valor predeterminado para 7" WXGA800 falló y el establecimiento de 800 x 1280 obras.
xandy
30

Funciona con 512 Mb en su lugar. Ninguno de los métodos anteriores funciona para mí.

slash33
fuente
El error "Error al asignar memoria: 8" desapareció después de reducir el tamaño de RAM de 1024 a 768 Mib.
cuajada0
muchos de ellos dicen lo mismo para arreglar el tamaño de 512 MB. Pero no funcionó en absoluto
Steve
30

Todo lo demás que lees aquí y en otros lugares es pura conjetura. La única forma segura de solucionar este problema es votar por este informe de error .

El problema no está relacionado con la resolución del emulador o OpenGL, ni con la cantidad de memoria que tiene su computadora. Tengo 24 GB de memoria en mi computadora y la mayoría de las veces me encuentro con el hw.ramSize=1024error 8. Otras veces funciona bien sin ningún cambio de configuración. Espero que hayas captado eso: no modifiqué en absoluto la configuración del emulador y, sin embargo, a veces se ejecuta y otras falla.

Hay una alta probabilidad de que tenga algo que ver con la fragmentación de la memoria. Recomiendo reducir el valor de hw.ramSizecomo una solución temporal.

Gili
fuente
2
Con todo respeto, su respuesta es pura conjetura también; Para mí, no tengo ningún problema al ejecutar cualquier dispositivo emulado con RAM virtual establecida hasta 2048 (no intenté más). Sin embargo, esos dispositivos solo se ejecutarán cuando acceda a mi máquina a través de Escritorio remoto . Entonces, para mí, ciertamente es un problema de gráficos y no un problema de fragmentación de memoria. Puedo probar esto de manera confiable saltando mi sesión de un lado a otro entre local y remoto. La misma sesión, la misma instancia del administrador AVD, simplemente no hay tarjetas NVIDIA terribles y sus controladores deslumbrantes en un escenario. (Pero eso es una diatriba para otro hilo).
s.co.tt
Si se trata de "fragmentación de RAM", probablemente podríamos probar eso usando uno de esos tontos programas de "desfragmentación de RAM", ¿verdad?
Usuario
17

Parece que hay mil soluciones diferentes para esto ... ninguno de los anteriores funcionó para mí, pero lo que funcionó fue iniciar el AVD desde la línea de comandos emulator-arm.exe @ AVD-NAME

De alguna manera, si se inicia solo con emulator.exe, obtendría el mismo mensaje de error que cuando intento iniciar a través de Eclipse.

Vincent Demers
fuente
Es posible que tenga el mismo problema que yo. Los archivos DLL se cargan cuando inicia el emulador desde un lugar y no si comienza desde otro.
mjaggard
14

Me di cuenta de que la solución a este problema proviene de la asignación de memoria de Eclipse cuando ejecuta la aplicación en modo normal. Acabo de marcar la casilla "Ejecutar como administrador" debajo de las propiedades de acceso directo para Eclipse y ahora me permite asignar más memoria para el AVD.

Espero que ayude.

Mahan H
fuente
13

He superado este problema cambiando el tamaño de la pantalla del dispositivo.

He descubierto que si especifica 1024 mb de ram, debe especificar el tamaño de la pantalla del dispositivo solo en hdpi y si es de 512 mb de ram, debería ser mdpi u otros.

Entonces, podemos decir claramente que el tamaño del ram debe especificarse de acuerdo con el tamaño de la pantalla. Si está especificando el tamaño de 1024 ram mientras mantiene el tamaño de la pantalla del dispositivo en mdpi, entonces se produce el error mencionado anteriormente, es decir, "No se pudo asignar memoria: 8 Esta aplicación ha solicitado al Runtime que lo termine de una manera inusual.

Póngase en contacto con el equipo de soporte de la aplicación para obtener más información ".

o

Haga sus opciones en AVD Manager de la siguiente manera:

[2013-01-11 14:44:01 - SDK Manager] hw.sensors.orientation = yes

[2013-01-11 14:44:01 - SDK Manager] hw.camera.front = none

[2013-01-11 14:44:01 - SDK Manager] hw.gps = sí

[2013-01-11 14:44:01 - SDK Manager] skin.dynamic = no

[2013-01-11 14:44:01 - SDK Manager] hw.keyboard = no

[2013-01-11 14:44:01 - SDK Manager] vm.heapSize = 32

[2013-01-11 14:44:01 - SDK Manager] hw.ramSize = 343

Vsw10
fuente
Esto funcionó: [2015-07-23 12:54:59 - SDK Manager] disk.dataPartition.size = 500M [2015-07-23 12:54:59 - SDK Manager] hw.gpu.enabled = yes [2015- 23/07 12:54:59 - SDK Manager] hw.audioInput = yes [2015-07-23 12:54:59 - SDK Manager] hw.sensors.orientation = yes [2015-07-23 12:54:59 - SDK Manager] hw.camera.front = none [2015-07-23 12:54:59 - SDK Manager] hw.gps = yes [2015-07-23 12:54:59 - SDK Manager] skin.dynamic = no [2015-07-23 12:54:59 - SDK Manager] hw.keyboard = yes [2015-07-23 12:54:59 - SDK Manager] vm.heapSize = 32 [2015-07-23 12:54 : 59 - SDK Manager] hw.ramSize = 512
user914425
6

Revisé todas las otras soluciones mencionadas en este hilo y no encontré nada que funcionara, así que dudé un poco. La versión de Google de la API me estaba fallando por alguna razón. Lo cambié de nuevo a la vainilla y no más accidentes.

Debo tener algún otro problema, pero tal vez esto ayude a alguien ...

Helico
fuente
Impar. Estaba configurado para la versión de vainilla, pero cambiarlo a la API de Google lo resolvió. ¡+1 para la idea de todos modos!
Paul
6

Echa un vistazo a la edición oficial 33930 . Se señala que puede tener que ver con el inicio de OpenGL durante el inicio del emulador. Otros escribieron que solo se bloquea cuando usan WXGA800-skin y sugieren configurar manualmente la resolución a 800x1280.

Además, se proporcionan archivos ZIP para degradar manualmente su SDK de Android a la versión 19 y herramientas de plataforma a la versión 11. Esto también puede ayudar a solucionar temporalmente el problema.

Max
fuente
Esto podría estar relacionado con mi problema. Los archivos DLL se cargan cuando inicia el emulador desde un lugar y no si comienza desde otro.
mjaggard
Debe haber más que eso. Primero configurándolo a WXGA800 y luego cambiándolo a una resolución manual de 1280x800 todavía bloquea AVD. Solo eliminarlo hw.ramSize=1024resuelve el problema (no puede hacerlo si se selecciona WXGA, debe usar una configuración de resolución manual).
RedGlyph el
5

Tengo 16 GB y un procesador quad core de 3.4 Ghz en mi máquina. La máquina virtual tampoco me deja ejecutarlo a 1024. Lo subí a 878 MB porque falló en 880 con el mismo mensaje. Esta parece ser la mayor cantidad de RAM que puedo asignar al emulador. Todavía es lento, pero supongo que es mejor que 512 MB.

sondlerd
fuente
5

Cambié la configuración de DPI de mi monitor desde las opciones de inicio de AVD y la sincronicé con la configuración original y actual de mi monitor, y funcionó.

Droid GEEK
fuente
4

Resolví poner como tamaño de almacenamiento 2 veces el tamaño de RAM, y poniendo el tamaño de almacenamiento SD igual que el tamaño de RAM.

Francesco Belladonna
fuente
3

Tuve el mismo problema, pero antes de tener el problema me pidió que capturara una fuente de video.

Deshabilité el soporte de la cámara y pude usar 1024MB of RAM.

Usando Windows 64bit, Xoom (Android 3.0).

Barry Carter
fuente
3

En mi caso, cambiar la resolución de pantalla de WVGA720 a WSVGA funciona para mí.

Mabicho
fuente
3

El problema está en la fragmentación de la memoria. El sistema operativo debe asignar toda la memoria RAM que especificó para vm (digamos 1 Gb) como un bloque continuo. A veces no existe tal bloqueo. Para solucionarlo, cierre los programas en ejecución, luego ejecute avd e inicie su máquina virtual.

Dave
fuente
2

Lo que funcionó para mí en Windows fue:

1) Cerrar Eclipse 2) Ejecutar Avd UI 3) Cerrar todos los procesos en ejecución, especialmente los que tienen mucha memoria, como Chrome, explorer.exe, etc. 4) Inicie el emulador 5) Win

Oren Bengigi
fuente
2

Asegúrese de que IntelHAXM esté instalado correctamente. No es suficiente descargarlo e "instalarlo" a través del SDK Manager. Debe instalarlo manualmente desde:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

Además, asegúrese de que la tecnología virtual Intel esté habilitada en su BIOS.

Siga la guía en developer.android.com o las instrucciones de instalación de Intel .

pegel
fuente
2

¡Solo necesita editar el ram de su dispositivo virtual, haciéndolo más bajo! ¡Pruebe 20 MB y funcionará!

usuario2062658
fuente
1

Me di cuenta de que estaba relacionado con solo uno y todos los demás que he trabajado bien. Lo eliminé y creé uno nuevo y ahora funciona.

Jason Crosby
fuente