2010-05-30 2 views
6

, когда я загрузить большие объемы данных с веб-сайта, я получил эту информацию об ошибке:андроид java.lang.OutOfMemoryError

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 

кто может мне помочь?

+0

У вас заканчивается память, по-видимому ... с чем именно вам нужна помощь? – flodin

+2

По крайней мере, предоставить полный стек и некоторую контекстную информацию о том, как вы загружаете данные (см. Сообщение об ошибке в BufferedInputStream). –

ответ

1

Отдельные приложения не имеют доступа ко всей доступной памяти устройства. Если вы загружаете большой набор данных, подумайте о том, чтобы записать его на SD-карту, как вы идете, а не пытаться полностью удерживать ее в памяти.

+4

Исключения OutOfMemory обычно не связаны с дисковой памятью, а кучей или памятью/оперативной памятью. (см. http://java.sun.com/j2se/1.4.2/docs/api/java/lang/OutOfMemoryError.html) –

+0

привет, adamp, Я был wirte для SDCard, но он все еще OutOfMemory. Не могли бы вы рассказать мне, как перерабатывать Drawable? – androiddream

+0

@Toni: вы часто можете обрабатывать данные в кусках или из локального хранилища в ситуациях, когда попытка сразу загрузить весь набор данных в память приведет к OOM. @xiangdream: Если ваши большие данные являются изображениями в виде Drawables (BitmapDrawables?), Взгляните на методы декодирования BitmapFactory и поле inSampleSize в BitmapFactory.Options. Вы можете изменить размер изображения до меньшего размера, загрузив его для сохранения памяти. http://developer.android.com/reference/android/graphics/BitmapFactory.html. Дополнительная информация о том, что вы пытаетесь сделать, будет полезна. :) – adamp

Смежные вопросы