WGDrzjz / ImageCompress

图片压缩工具,基于libjpeg-turbo封装,arm64-v8a和armeabi-v7a都可以正常使用。
51 stars 13 forks source link

请问作者能解决一下OOM吗 #3

Open FlyingYu-Z opened 5 years ago

FlyingYu-Z commented 5 years ago

我使用的是1.0.8版本,使用的时候,选择了5张图片,每张都大于100kb,然而在压缩的时候出现了OOM,去看了一下源码,发现报错的地方是解析文件为Bitmap。也就是GDBitmapUtils的第68行。报错信息如下: java.lang.OutOfMemoryError: Failed to allocate a 2073612 byte allocation with 1164040 free bytes and 1136KB until OOM at dalvik.system.VMRuntime.newNonMovableArray(Native Method) at android.graphics.BitmapFactory.nativeDecodeStream(Native Method) at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:677) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:653) at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:433) at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:459) at com.wgd.gdcp.gdcplibrary.GDBitmapUtil.bitmapDegree(GDBitmapUtil.java:68) at com.wgd.gdcp.gdcplibrary.GDCompressImageS$100000000.run(GDCompressImageS.java:102) at java.lang.Thread.run(Thread.java:818)

希望作者修复此Bug。

WGDrzjz commented 5 years ago

由于前段时间比较忙,而且公司使用一直没有问题,所以这个项目一直没有优化。现在终于抽出时间来搞了一下。目前1.0.10版本已经提供多种方式优化OOM问题。欢迎继续使用、讨论。