yanzhenjie / NoHttp

:lemon: Android实现Http标准协议框架,支持多种缓存模式,底层可动态切换OkHttp、URLConnection。
https://github.com/yanzhenjie/NoHttp
Apache License 2.0
3.71k stars 851 forks source link

下载提示存储空间不足但有空间。 #98

Closed TxcA closed 6 years ago

TxcA commented 7 years ago

感谢严大回复。 当前使用NoHttp 1.1.2,设备为iTop4412 开发板。 下载文件失败,StorageSpaceNotEnoughError :The folder is not enough space to save the downloaded file: /mnt/sdcard/HeServer/UpVersion/. 但实际有足够的存储空间。

Image of Yaktocat Image of Yaktocat

另:NoHttp1.1.0 没有该错误。

liajt commented 7 years ago

我也遇到了一样的问题,下载空间不足,但实际上是充足的

yanzhenjie commented 7 years ago

@liajt 试试1.1.21,修复了这个问题。

liajt commented 7 years ago

@yanzhenjie 1.1.21还是有这个问题:下载大文件800M,已经下载500M,空间还剩600M,这个时候就下载不了, 报空间不足。理想中只需要还有300M的空间,就应该可以把剩下的文件下完,但还有600M却下不完。

onion2333 commented 7 years ago

我也遇到了这个问题,目前来说只有部分机型有这个问题

onion2333 commented 7 years ago

我查看了一下这个问题,是因为你的IOUtils这个工具类里,getDirSize这个方法的一个问题。在Android4.2及以下版本时会调用stat.getBlockSize() stat.getAvailableBlocks()获取数据,但是因为stat.getAvailableBlocks()这个方法返回的是int类型,使用弃用方法在内存大时容易造成内存溢出,导致得到的值为负值,本质原因就是赋为int超出其取值范围了。建议强转一下就ok了,stat.getBlockSize() Long.valueOf(stat.getAvailableBlocks()),希望下个版本能修正。

yanzhenjie commented 7 years ago

感谢反馈,会在新版中修复。

RockVampire commented 7 years ago

遇到同样的问题了,新版还没有修复么

zhuminjunivan commented 6 years ago

遇到该问题 还没有新版本么

zhuminjunivan commented 6 years ago

1.1.4 未解决该问题

yanzhenjie commented 6 years ago

刚刚发布了1.1.5版本,根据@onion2333 的方案做了处理,修复了这个问题,谢谢大家反馈。