【问题标题】:java.lang.outofmemoryerror bitmap on a fragment pager片段寻呼机上的 java.lang.outofmemoryerror 位图
【发布时间】:2014-07-19 22:37:44
【问题描述】:

我有一些内存泄漏问题,我找不到解决方法。 stackoverflow 中有很多问题,但没有一个对我有用。

我有一个带有视图寻呼机和操作栏标签导航的活动。在每个片段中,我只加载一个图像,因此这最终是一个画廊。效果不错。

在一些片段更改后,我得到了这个错误:

E/AndroidRuntime(19271): java.lang.OutOfMemoryError E/AndroidRuntime(19271):在 android.graphics.Bitmap.nativeCreate(Native Method)

我所读到的都是关于解除分配图像的需要,所以我想到了一些事情:

  1. “片段失去焦点”事件
  2. 删除片段内失去焦点的所有视图

但我找不到任何类似的解决方案。这是正确的方法吗?如果是这样,你能举个例子吗?还是我完全错了,解决办法是另一种方式?

这就是我将图像添加到片段的方式:

             ImageView img = new ImageView(rootView.getContext());
             img.setVisibility(1);
             img.setImageResource(R.drawable.gallery_image_1);
             img.setAdjustViewBounds(true);
             img.setTag( "gallery_image_1" );
             gallery.addView(img);

提前感谢大家!

迭戈

【问题讨论】:

    标签: android memory-leaks bitmap out-of-memory


    【解决方案1】:

    首先,确保您使用的是FragmentStatePagerAdapter,因为它比FragmentPagerAdapter 对内存更友好。

    其次,使用MAT 分析您的应用程序,找出真正导致内存泄漏的原因。 Here's 一篇出色的文章,描述了如何在 Android 环境中使用此工具。

    【讨论】:

    • 感谢您的回答。我改为 FragmentStatePagerAdapter 但它没有帮助(我会说它现在更糟糕了)。我安装了 MAT,但除了告诉我 byte[](存储位图信息的位置)是填充内存的类之外,我无法继续寻求解决方案。
    • 最后,我似乎在这里找到了一个简单的解决方案:stackoverflow.com/questions/18583485/… 它现在对我来说完美无缺。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多