2010-05-30 18 views
6

al descargar grandes cantidades de datos de la página web, me dieron esta información de error:java.lang.OutOfMemoryError androide

I/global (20094): Default buffer size used in BufferedInputStream constructor. 
It would be better to be explicit if an 8k buffer is required. 
D/dalvikvm(20094): GC freed 6153 objects/3650840 bytes in 335ms 
I/dalvikvm-heap(20094): Forcing collection of SoftReferences for 3599051-byte al 
location 
D/dalvikvm(20094): GC freed 320 objects/11400 bytes in 144ms 
E/dalvikvm-heap(20094): Out of memory on a 3599051-byte allocation. 
I/dalvikvm(20094): "Thread-9" prio=5 tid=17 RUNNABLE 
I/dalvikvm(20094): | group="main" sCount=0 dsCount=0 s=0 obj=0x439b9480 
I/dalvikvm(20094): | sysTid=25762 nice=0 sched=0/0 handle=4065496 

alguien me puede ayudar?

+0

Se queda sin memoria, al parecer ... ¿con qué necesitas ayuda? – flodin

+2

Al menos proporcione la stacktrace completa y cierta información de contexto sobre cómo descargar los datos (consulte, el mensaje de error habla de un BufferedInputStream) –

Respuesta

1

Las aplicaciones individuales no tienen acceso a toda la memoria disponible del dispositivo. Si está descargando un gran conjunto de datos, considere escribirlo en la tarjeta SD sobre la marcha en lugar de tratar de mantenerlo completamente en la memoria.

+4

Las excepciones de OutOfMemory generalmente no tienen que ver con la memoria de disco sino con heap o memory/ram. (ver http://java.sun.com/j2se/1.4.2/docs/api/java/lang/OutOfMemoryError.html) –

+0

hola, adamp, Estaba listo para SDCard, pero sigue siendo OutOfMemory. ¿Podría decirme cómo reciclar Drawable? – androiddream

+0

@Toni: a menudo puede procesar datos en fragmentos hacia o desde el almacenamiento local en situaciones en las que intentar cargar todo el conjunto de datos en la memoria a la vez daría como resultado OOM. @xiangdream: Si sus datos de gran tamaño son imágenes en forma de Drawables (BitmapDrawables?) Eche un vistazo a los métodos de decodificación de BitmapFactory y al campo inSampleSize de BitmapFactory.Options. Puede volver a muestrear una imagen a un tamaño más pequeño mientras la carga para guardar la memoria. http://developer.android.com/reference/android/graphics/BitmapFactory.html Más información sobre lo que intenta hacer sería útil. :) – adamp