2011-06-28 130 views
-1

我正在開發一個處理緩存中存儲大量圖像的應用程序,我經常遇到類似內存不足的錯誤。任何人都可以提出一個方法來解決這個問題android內存泄露

錯誤日誌

Report of logcat : 

06-27 19:41:16.425: ERROR/AndroidRuntime(13965): FATAL EXCEPTION: main 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965): java.lang.OutOfMemoryError: bitmap size exceeds VM budget 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:450) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:326) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.content.res.Resources.loadDrawable(Resources.java:1709) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.content.res.Resources.getDrawable(Resources.java:581) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.view.View.setBackgroundResource(View.java:7533) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at com.lht.icruise.activity.shipdetails.ShipDetailsActivity.onCreate(ShipDetailsActivity.java:99) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.os.Looper.loop(Looper.java:123) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at android.app.ActivityThread.main(ActivityThread.java:3647) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at java.lang.reflect.Method.invoke(Method.java:507) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
06-27 19:41:16.425: ERROR/AndroidRuntime(13965):  at dalvik.system.NativeStart.main(Native Method) 
+0

MOre details?錯誤消息,代碼等... – FerranB

+1

請從發生OutOfMemoryError的位置發佈堆棧跟蹤 – sparkymat

+0

其中一個錯誤: –

回答

1

如果您在使用大位圖,回收位圖以釋放內存使用再循環()方法的位圖時的位圖不再被使用,可能會幫助你。

+0

作爲替代(不太優雅),他可以使用'System.cmc()'來釋放內存。 – piotrpo