cari

Rumah  >  Soal Jawab  >  teks badan

android - fresco库加载图片出现OOM,求使用过的大神解决

有没有人使用过fresco库加载图片解决OOM问题的?因为我的项目需要大量加载图片,用了fresco库主要就是想解决GC相关OOM问题,但是发现项目在AS中使用fresco库运行在21安卓版本以下还是会出现OOM问题,运行在21及以上的版本不会出现任何问题,gradle一些相关语句如下:
compileSdkVersion 23
buildToolsVersion '23.0.3'
minSdkVersion 15
targetSdkVersion 23
compile 'com.facebook.fresco:fresco:0.9.0+'
报错图片:

ringa_leeringa_lee2772 hari yang lalu1619

membalas semua(14)saya akan balas

  • 怪我咯

    怪我咯2017-04-17 17:54:31

    我能推荐glide么
    https://github.com/bumptech/g...

    balas
    0
  • 迷茫

    迷茫2017-04-17 17:54:31

    用Glide吧

    balas
    0
  • 黄舟

    黄舟2017-04-17 17:54:31

    1、查看系统是否有使用大内存的代码或死循环。
    2、可以添加JVM的启动参数来限制使用内存:-XX:-UseGCOverheadLimit

    1. 可以给fresco 添加属性,改变图片的大小

    balas
    0
  • 高洛峰

    高洛峰2017-04-17 17:54:31

    同推荐glide。代码简单,自动压缩缓存图片

    在5.0(也就是API21)以下系统,Fresco将图片放到一个特别的内存区域。当然,在图片不显示的时候,占用的内存会自动被释放。这会使得APP更加流畅,减少因图片内存占用而引发的OOM。 fresco中文文档上面写的

    而且现在最新的是 compile 'com.facebook.fresco:fresco:0.13.0' 了,可以尝试一下

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:54:31

    首先说一下,我也是来帮顶的。

    那些说用Glide的我不知道是啥心理。你哪怕说说为啥用Glide呀(虽然我一直用glide)

    遇到问题应该去解决,换库是一种方法,但起码要尝试失败后再去换。

    我有个疑问,fressco为啥会oom啊?不是说业界最叼的吗?

    说下我的思路:
    如果楼主真把这个库玩出oom了,我觉的还是挺厉害的,不妨排查代码,哪里不合理。如果你觉得你都对了,不妨给github发一个issue

    balas
    0
  • 迷茫

    迷茫2017-04-17 17:54:31

    你这个问题我以前使用Fresco时候遇到过,当时怀疑是Fresco本身问题,后来发现是自己代码问题,一般情况下,Fresco本身是不会触发OOM,建议先检查自己的代码。

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:54:31

    同 Glide

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:54:31

    这个是编译过程oom,不是运行时oom,和使用什么库没有关系。
    编译过程产生oom,需要调整编译参数,如 @wordplat 所言

    android {
    
    dexOptions {
        javaMaxHeapSize "4g"
    }
    }
    

    balas
    0
  • 高洛峰

    高洛峰2017-04-17 17:54:31

    你这个其实是代码编译时产生的OOM,并不是这个框架本身产生的问题,所以你只需要调整JVM堆内存的大小就可以了。

    dexOptions {
        javaMaxHeapSize "4g"
    }

    balas
    0
  • 怪我咯

    怪我咯2017-04-17 17:54:31

    有些时候还是贴代码来的方便

    balas
    0
  • Batalbalas