这个异常是在复用 inBitmap 的时候出现的
解决办法;
在解析图片 宽、高 等数据的时候不要用 BitmapFactory.decodeStream(is, null, options);
BitmapFactory.Options options = new BitmapFactory.Options(); //先解析图片信息,判断是否可以用复用二级缓存里的内存空间 options.inJustDecodeBounds = true; if (null != is) { FileDescriptor fd = ((FileInputStream) is).getFD(); // BitmapFactory.decodeFileDescriptor(fd, null, options); BitmapFactory.decodeStream(is, null, options);//就是这句引起的 }
可以用 BitmapFactory.decodeFileDescriptor(...); 、decodeFile 、decodeResources 。
关于如何利用 inBitmap 复用内存 ?
https://mp.weixin.qq.com/s/GMy0xMcxJ_o0Yh0e_eaSIQ