Android 4.4.4 DataFormatException:stream error

来源:互联网 发布:免费淘宝培训班义乌 编辑:程序博客网 时间:2024/06/09 21:57

最近做一个项目,在公司开发完毕之后,客户测试中总是出问题,而我们的手机确测不出来问题,后来了解到客户使用的手机是小米4,于是公司又买了台小米4进行测试。(这里不是为了黑小米)确实有问题,期初logcat调到error时找不到错误,后来换到warm才发现错误信息。具体信息如下:



错误是DataFormatException:stream error。因为这里使用了GzipUtils 方法对信息流进行压缩。但是其他手机没有问题,后来对比了下发现,小米4的系统是android4.4.4,所以可能是android系统对于方法不支持。代码很简单,如下:

   ByteArrayOutputStream bytes=new ByteArrayOutputStream();        GZIPOutputStream gzip=new GZIPOutputStream(bytes);        GarUtils.transfer(parent.getContent(),gzip);        try{            gzip.finish();            gzip.flush();        }catch (Exception e){            e.printStackTrace();        }finally {            gzip.close();        }
网上查了 大多是说流的开启和关闭顺序有可能存在冲突,但是看了半天源码,发现 GZIPOutputStream 的源码说明里只有 finish()方法和write方法 而close()和flush()是父类的方法,所以尝试着去掉了 flush()方法  考虑到流到操作最后都要关闭 所以没有去掉close()方法 。

再次运行 搞定!

个人也是android 菜鸟 。希望大家有什么好的方法 多多指教 目前不确定其他android 版本是否存在同样问题。

0 0
原创粉丝点击