okdownload icon indicating copy to clipboard operation
okdownload copied to clipboard

下载成功不走taskEnd? 无法判断文件是否下载完成

Open XiongKe94 opened this issue 4 years ago • 19 comments

1.最新版本 2.在progress方法之后没有任何回调了?

XiongKe94 avatar Apr 27 '20 07:04 XiongKe94

Log: D/DownloadCache: catch unknown error java.io.IOException: The current offset on block-info isn't update correct, 14384616 != 22541663 on 0

XiongKe94 avatar Apr 27 '20 09:04 XiongKe94

我也遇到了这个问题,我是通过设置链接数改为1修复了这个问题,代码如下: DownloadTask.Builder(url, file).setConnectionCount(1) 参考文档:https://github.com/lingochamp/okdownload/wiki/Special-Case

lk5103613 avatar May 05 '20 09:05 lk5103613

更具体原因是因为MultiPointOutputStream中的flushProcess中的size和outputStreamMap的size没有对应,导致下标越界了,你把IOException改为Exception可以捕获这个异常

zhouzhuyuan avatar Jun 01 '20 04:06 zhouzhuyuan

问题解决了,Android 10 修改了SparseArray,在Android 9 和之前的版本,传入的下标越界不做处理,现在会抛异常了!!!!!可以尝试在flushProcess中catch住这个异常,或者在outputstream移除的地方同步移除onSyncLengthMap中对应的blockIndex

zhouzhuyuan avatar Jun 01 '20 06:06 zhouzhuyuan

今天升级app遇到了......

ixingzhi avatar Jun 01 '20 13:06 ixingzhi

问题解决了,Android 10 修改了SparseArray,在Android 9 和之前的版本,传入的下标越界不做处理,现在会抛异常了!!!!!可以尝试在flushProcess中catch住这个异常,或者在outputstream移除的地方同步移除onSyncLengthMap中对应的blockIndex

怎么操作的啊

owenxiao-AS avatar Jul 07 '20 03:07 owenxiao-AS

我也遇到了这个问题,我是通过设置链接数改为1修复了这个问题,代码如下: DownloadTask.Builder(url, file).setConnectionCount(1) 参考文档:https://github.com/lingochamp/okdownload/wiki/Special-Case

如果是block多块下载 这个没用啊

owenxiao-AS avatar Jul 07 '20 03:07 owenxiao-AS

问题解决了,Android 10 修改了SparseArray,在Android 9 和之前的版本,传入的下标越界不做处理,现在会抛异常了!!!!!可以尝试在flushProcess中catch住这个异常,或者在outputstream移除的地方同步移除onSyncLengthMap中对应的blockIndex

怎么操作的啊

其实不推荐使用分快下载,这个库分块效率还需要调整,分块比不分快慢(实测)。我这边是源码依赖,需要修改源码的。修改源码的话在MultiPointOutputStream这个类中搜索我给的几个关键词,加一些日志,就可以看出问题了

zhouzhuyuan avatar Jul 07 '20 03:07 zhouzhuyuan

问题解决了,Android 10 修改了SparseArray,在Android 9 和之前的版本,传入的下标越界不做处理,现在会抛异常了!!!!!可以尝试在flushProcess中catch住这个异常,或者在outputstream移除的地方同步移除onSyncLengthMap中对应的blockIndex

怎么操作的啊

其实不推荐使用分快下载,这个库分块效率还需要调整,分块比不分快慢(实测)。我这边是源码依赖,需要修改源码的。修改源码的话在MultiPointOutputStream这个类中搜索我给的几个关键词,加一些日志,就可以看出问题了

How did you solve this issue?

sametbars avatar Aug 03 '20 05:08 sametbars

The current offset on block-info isn't update correct?解决了吗

JackLiaoJH avatar Nov 20 '20 07:11 JackLiaoJH

Android10分块下载会有问题,需要加上 DownloadTask.Builder(url, file).setConnectionCount(1) 这样,不会报错,临时解决方案。

ixingzhi avatar Nov 20 '20 07:11 ixingzhi

ok

JackLiaoJH avatar Nov 20 '20 07:11 JackLiaoJH

@ixingzhi 的方法可行

love999 avatar May 07 '21 10:05 love999

问题解决了,Android 10 修改了SparseArray,在Android 9 和之前的版本,传入的下标越界不做处理,现在会抛异常了!!!!!可以尝试在flushProcess中catch住这个异常,或者在outputstream移除的地方同步移除onSyncLengthMap中对应的blockIndex

怎么操作的啊

其实不推荐使用分快下载,这个库分块效率还需要调整,分块比不分快慢(实测)。我这边是源码依赖,需要修改源码的。修改源码的话在MultiPointOutputStream这个类中搜索我给的几个关键词,加一些日志,就可以看出问题了

目前根据@zhouzhuyuan 的提示我这边是这样修改的: image 测试了几次目前是可以的

BreakLink avatar Jul 14 '21 10:07 BreakLink

Android10分块下载会有问题,需要加上 DownloadTask.Builder(url, file).setConnectionCount(1) 这样,不会报错,临时解决方案。

这样写会导致连接数变成1个,不行的,进而导致下载速度变慢。

XiongKe94 avatar Jul 16 '21 01:07 XiongKe94

问题解决了,Android 10 修改了SparseArray,在Android 9 和之前的版本,传入的下标越界不做处理,现在会抛异常了!!!!!可以尝试在flushProcess中catch住这个异常,或者在outputstream移除的地方同步移除onSyncLengthMap中对应的blockIndex

怎么操作的啊

其实不推荐使用分快下载,这个库分块效率还需要调整,分块比不分快慢(实测)。我这边是源码依赖,需要修改源码的。修改源码的话在MultiPointOutputStream这个类中搜索我给的几个关键词,加一些日志,就可以看出问题了

目前根据@zhouzhuyuan 的提示我这边是这样修改的: image 测试了几次目前是可以的

我是这么解决的 屏幕快照 2021-07-16 09 25 31

下载成功给它暂停掉,回调中让它不走即可。

XiongKe94 avatar Jul 16 '21 01:07 XiongKe94

pmxjBBZM5L 就是这个错误了,把源码copy出来,自己改改吧

kkmike999 avatar Mar 16 '22 09:03 kkmike999

pmxjBBZM5L 就是这个错误了,把源码copy出来,自己改改吧

想请教一下后续这个你是怎么改的呢?

yanxiangzhou avatar Apr 06 '23 02:04 yanxiangzhou

问题解决了,Android 10 修改了SparseArray,在Android 9 和之前的版本,传入的下标越界不做处理,现在会抛异常了!!!!!可以尝试在flushProcess中catch住这个异常,或者在outputstream移除的地方同步移除onSyncLengthMap中对应的blockIndex

怎么操作的啊

其实不推荐使用分快下载,这个库分块效率还需要调整,分块比不分快慢(实测)。我这边是源码依赖,需要修改源码的。修改源码的话在MultiPointOutputStream这个类中搜索我给的几个关键词,加一些日志,就可以看出问题了

我这边也发现 分块下载并没有比不分块 快, 试过多个下载链接都是这样~ 请教下你有改源码进行优化分块下载么

mikelhm avatar Apr 08 '23 04:04 mikelhm