как исправить ошибку, когда размер растрового изображения превышает бюджет виртуальной машины

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

ouput :

01-11 15:39:51.809: ERROR/AndroidRuntime(6214): Uncaught handler: thread main exiting due to uncaught exception
01-11 15:39:51.979: ERROR/AndroidRuntime(6214): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:384)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:397)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at com.fitzgeraldsoftware.shout.presentationLayer.Shout.onActivityResult(Shout.java:1653)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.app.Activity.dispatchActivityResult(Activity.java:3624)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3220)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3266)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.app.ActivityThread.access$2600(ActivityThread.java:116)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1823)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.os.Looper.loop(Looper.java:123)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at android.app.ActivityThread.main(ActivityThread.java:4203)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at java.lang.reflect.Method.invokeNative(Native Method)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at java.lang.reflect.Method.invoke(Method.java:521)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
01-11 15:39:51.979: ERROR/AndroidRuntime(6214):     at dalvik.system.NativeStart.main(Native Method)

как можно исправить ошибку, пожалуйста, пришлите какое-нибудь решение, спасибо заранее


person Narasimha    schedule 11.01.2011    source источник


Ответы (2)


Нарасимха, я полагаю, может быть, этот пост поможет вам

android-strange-out-of-memory-issue

или этот java-lang-outofmemoryerror-bitmap-size-exceeds- вм-бюджет-андроид

или может быть это android-java-lang-outofmemoryerror

и там уже есть еще вопросы

person 100rabh    schedule 11.01.2011

У вас утечка памяти. Вам нужно провести расследование, чтобы найти его. Это может быть невыпущенный Bitmap или Cursor...

Проверить кучу, чтобы узнать, какие объекты у вас есть.

person Aliostad    schedule 11.01.2011
comment
Убедитесь, что вы кешируете их, или вы вызываете .release() - person Aliostad; 11.01.2011