【发布时间】:2011-10-28 14:51:03
【问题描述】:
可能重复:
OutOfMemoryError: bitmap size exceeds VM budget :- Android
在我的应用程序中,我有一个自定义列表视图,它显示每个列表的图像和一些文本视图。
我的drawable中有.png格式的图像。每次我在将其转换为可绘制对象后列出图像时。如果用户打开列表视图活动并返回到上一个活动并再次连续打开列表视图,我会收到内存不足错误。
为了避免这种情况,我设置了 bitmap = null 并且我什至回收了它。但仍然存在同样的错误。
if(icon_bmp != null)
{
icon_bmp.recycle();
icon_bmp = null;
System.gc();
}
但我仍然遇到同样的内存不足错误。以下是我的错误日志
Uncaught handler: thread main exiting due to uncaught exception
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.graphics.Bitmap.nativeCreate(Native Method)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.graphics.Bitmap.createBitmap(Bitmap.java:435)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:488)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:462)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:323)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:346)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:372)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at com.pack.LocalDish.CustomAdapter.DishListViewAdapter.populateListData(DishListViewAdapter.java:129)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at com.pack.LocalDish.CustomAdapter.DishListViewAdapter.getView(DishListViewAdapter.java:82)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.widget.AbsListView.obtainView(AbsListView.java:1256)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.widget.ListView.makeAndAddView(ListView.java:1668)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.widget.ListView.fillDown(ListView.java:637)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.widget.ListView.fillGap(ListView.java:608)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:2531)
08-12 19:23:16.168: ERROR/AndroidRuntime(14107): at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:2353)
如何避免这个错误,请朋友们帮帮我
【问题讨论】:
-
你的图片尺寸是多少?
-
图片大小从 1.32MB 到 1.7MB 不等(总共 14 张图片)
-
图片尺寸太大,请缩小图片尺寸
-
好的,那我的图片尺寸是多少,有什么建议吗
-
我必须将图像更改为小拇指指甲图像,对吗
标签: android out-of-memory