2010-11-16 11 views
15

obtengo "asignación externa demasiado grande para este proceso" errores en mi aplicación. Las porciones de éstos a la vez:asignación externa demasiado grande para este proceso en Android

11-16 10:56:59.230: ERROR/dalvikvm-heap(2875): 1303680-byte external allocation too large for this process. 
11-16 10:56:59.230: ERROR/GraphicsJNI(2875): VM won't let us allocate 1303680 bytes 
11-16 10:56:59.230: ERROR/dalvikvm-heap(2875): 1536000-byte external allocation too large for this process. 
11-16 10:56:59.230: ERROR/GraphicsJNI(2875): VM won't let us allocate 1536000 bytes 

Parece que se producen mientras que la disposición se está representando, después de cargar mapas de bits grandes. Sin embargo, los errores no se producen mientras se está decodificando el mapa de bits.

¿Cómo puedo solucionar estos errores? ¿Alguna sugerencia adicional?

+1

El marco a menudo captura las vistas en pantalla en mapas de bits temporales para el rendimiento del dibujo. Parece que su aplicación ya está presionando contra su límite de memoria y esto lo golpea. Eche un vistazo a las otras sugerencias para limitar el uso de la memoria de su aplicación. – adamp

+0

@adamp Muy interesante. ¿Este comportamiento está documentado en alguna parte? – hpique

+0

Sí. Vea los diversos métodos en la clase View relacionados con las cachés de dibujo. Es una API pública que las aplicaciones pueden usar también. – adamp

Respuesta

4

de adamp era la respuesta en mi caso particular:

El marco menudo capturará vistas en pantalla en mapas de bits temporales para rendimiento del dibujo. Parece que su aplicación está presionando directamente contra su límite de memoria y este lo supera. Eche un vistazo a las otras sugerencias para limitar el uso de memoria de su aplicación .

4

Si está utilizando subprocesos, el depurador podría ser el origen del problema. Si ejecuta la aplicación debajo del depurador, el depurador conservará los subprocesos creados, incluso cuando terminen de ejecutarse. Esto genera errores de memoria que no se producirán cuando la aplicación se esté ejecutando sin el depurador. comentario

http://code.google.com/p/android/issues/detail?id=7979

+0

Aquí hay un enlace que funciona: http://gitorious.org/0xdroid/dalvik/blobs/master/docs/debugger.html#line198 –

Cuestiones relacionadas