【问题标题】:out of memory error in android app [duplicate]android应用程序中的内存不足错误[重复]
【发布时间】: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


【解决方案1】:

你可以通过调用finish()方法完成Listview活动,并在onDestroy方法中清除所有对象,drawables为null。

【讨论】:

  • 我已经尝试过了,但仍然存在
【解决方案2】:

以下是您可以解决问题的方法。

Image Size Issue

【讨论】:

    猜你喜欢
    • 2013-02-19
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 2015-10-16
    • 2011-12-08
    相关资源
    最近更新 更多