yangfuhai / afinal

Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。详情请通过以下网址查看。
3.16k stars 1.49k forks source link

部分机型初始化图片缓存时出现内存溢出 #49

Closed kvgnt closed 10 years ago

kvgnt commented 11 years ago

异常信息: java.lang.OutOfMemoryError java.util.HashMap.makeTable(HashMap.java:555) java.util.HashMap.(HashMap.java:158) net.tsz.afinal.bitmap.core.SoftMemoryCacheImpl.(SoftMemoryCacheImpl.java:28) net.tsz.afinal.bitmap.core.BitmapCache.init(BitmapCache.java:64) net.tsz.afinal.bitmap.core.BitmapCache.(BitmapCache.java:49) net.tsz.afinal.FinalBitmap.init(FinalBitmap.java:239) net.tsz.afinal.FinalBitmap.doDisplay(FinalBitmap.java:327) net.tsz.afinal.FinalBitmap.display(FinalBitmap.java:264)

SoftMemoryCacheImpl 设置大小时,默认值过大导致

guoshijie1990 commented 11 years ago

怎么解决的啊? 代码里只有一句话啊 FinalBitmap.create(getApplicationContext()).display(imageView, "http://p9.qhimg.com/t0182e5bc03be6556c6.jpg"); 就内存溢出了啊。

ddonano commented 11 years ago

图片过大,没有压缩把~~

kvgnt commented 11 years ago

暂时就是SoftMemoryCacheImpl 初始化里把size参数去掉了.

ddonano commented 11 years ago

把size参数 这个不会有问题吗

fantouch commented 10 years ago

@kvgnt +1 @ddonano

修改方法net.tsz.afinal.bitmap.core.SoftMemoryCacheImpl.SoftMemoryCacheImpl(int size)里面的 mMemoryCache = new HashMap<String, SoftReference<Bitmap>>(size);改为mMemoryCache = new HashMap<String, SoftReference<Bitmap>>();就可以了,不会有影响