热更新或者下载大文件断网失败后,再次下载异常

  • Creator 版本: 2.4.3

  • 目标平台: 安卓真机 红米

  • 重现方式:
    下载大文件中切断网络,失败后恢复网络再次进行下载就会出现下载进度回掉几次后就会自动断开下载

    /**开始下载zip文件 */
    private downloadAndCompress2222() {
    let url: string = “http://poker.snowcicada.com/opsWeb/hotUpdate/1_0_12/zips/hall_0c5e5d784b608e7d1461f591c6694d7a.zip”;
    let rootPath = jsb.fileUtils.getWritablePath() + “zips/”
    let downPath = rootPath + “down_temp/”
    if (!jsb.fileUtils.isDirectoryExist(downPath)) {
    jsb.fileUtils.createDirectory(downPath);
    }
    let path = downPath + temp.zip;;
    cc.log(downloadAndCompress url:${url} path:${path});
    let downloader = new jsb.Downloader();
    let downTask = {
    url: url,
    path: path,
    gameDirPath: rootPath,
    downloader: downloader,
    totalSize: 0,
    };
    let tempPath = path + “.tmp”;
    if (jsb.fileUtils.isFileExist(path)) {
    jsb.fileUtils.removeFile(path);
    }
    if (jsb.fileUtils.isFileExist(tempPath)) {
    // jsb.fileUtils.removeFile(tempPath);
    }
    downloader.setOnFileTaskSuccess((sender) => {
    cc.log(“setOnFileTaskSuccess”);
    if (jsb.fileUtils.isDirectoryExist(downTask.gameDirPath)) {
    jsb.fileUtils.removeDirectory(downTask.gameDirPath);
    }
    //自定义解压文件
    });
    downloader.setOnTaskError((sender, errorCode, errorCodeInternal, errorStr) => {
    cc.log(“setOnTaskError:”, errorCode, errorCodeInternal, errorStr);
    //重试断点续传
    setTimeout(()=>{
    //进行用户提示异常 是否进行再次尝试
    this.downloadAndCompress2222();
    //或者是
    // cc.game.restart();
    }, 10000);
    });
    downloader.setOnTaskProgress((sender, bytesReceived, totalBytesReceived, totalBytesExpected) => {
    cc.log(“setOnTaskProgress:”, bytesReceived, totalBytesReceived, totalBytesExpected);
    });
    downloader.createDownloadFileTask(url, path, “”);
    }

  • 首个报错:
    2023-09-27 11:30:53.142 9967-10054/org.cocos2d.demo W/System.err: java.net.SocketException: Software caused connection abort
    2023-09-27 11:30:53.143 9967-10054/org.cocos2d.demo W/System.err: at java.net.SocketInputStream.socketRead0(Native Method)
    2023-09-27 11:30:53.143 9967-10054/org.cocos2d.demo W/System.err: at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
    2023-09-27 11:30:53.143 9967-10054/org.cocos2d.demo W/System.err: at java.net.SocketInputStream.read(SocketInputStream.java:176)
    2023-09-27 11:30:53.143 9967-10054/org.cocos2d.demo W/System.err: at java.net.SocketInputStream.read(SocketInputStream.java:144)
    2023-09-27 11:30:53.143 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.Okio$2.read(Okio.java:140)
    2023-09-27 11:30:53.143 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
    2023-09-27 11:30:53.143 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.RealBufferedSource.read(RealBufferedSource.java:47)
    2023-09-27 11:30:53.144 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okhttp3.internal.http1.Http1Codec$AbstractSource.read(Http1Codec.java:363)
    2023-09-27 11:30:53.144 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okhttp3.internal.http1.Http1Codec$FixedLengthSource.read(Http1Codec.java:407)
    2023-09-27 11:30:53.144 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.RealBufferedSource$1.read(RealBufferedSource.java:439)
    2023-09-27 11:30:53.144 9967-10054/org.cocos2d.demo W/System.err: at java.io.InputStream.read(InputStream.java:101)
    2023-09-27 11:30:53.146 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.lib.Cocos2dxDownloader$3$1.onResponse(Cocos2dxDownloader.java:228)
    2023-09-27 11:30:53.146 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)
    2023-09-27 11:30:53.146 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
    2023-09-27 11:30:53.146 9967-10054/org.cocos2d.demo W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    2023-09-27 11:30:53.146 9967-10054/org.cocos2d.demo W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    2023-09-27 11:30:53.146 9967-10054/org.cocos2d.demo W/System.err: at java.lang.Thread.run(Thread.java:919)

再次下载就会
2023-09-27 11:31:23.751 9967-10054/org.cocos2d.demo W/System.err: java.net.SocketTimeoutException: timeout
2023-09-27 11:31:23.752 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.Okio$4.newTimeoutException(Okio.java:232)
2023-09-27 11:31:23.752 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.AsyncTimeout.exit(AsyncTimeout.java:285)
2023-09-27 11:31:23.752 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.AsyncTimeout$2.read(AsyncTimeout.java:241)
2023-09-27 11:31:23.752 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.RealBufferedSource.read(RealBufferedSource.java:47)
2023-09-27 11:31:23.752 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okhttp3.internal.http1.Http1Codec$AbstractSource.read(Http1Codec.java:363)
2023-09-27 11:31:23.753 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okhttp3.internal.http1.Http1Codec$FixedLengthSource.read(Http1Codec.java:407)
2023-09-27 11:31:23.753 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.RealBufferedSource$1.read(RealBufferedSource.java:439)
2023-09-27 11:31:23.753 9967-10054/org.cocos2d.demo W/System.err: at java.io.InputStream.read(InputStream.java:101)
2023-09-27 11:31:23.753 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.lib.Cocos2dxDownloader$3$1.onResponse(Cocos2dxDownloader.java:228)
2023-09-27 11:31:23.753 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)
2023-09-27 11:31:23.753 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
2023-09-27 11:31:23.753 9967-10054/org.cocos2d.demo W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
2023-09-27 11:31:23.753 9967-10054/org.cocos2d.demo W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
2023-09-27 11:31:23.754 9967-10054/org.cocos2d.demo W/System.err: at java.lang.Thread.run(Thread.java:919)
2023-09-27 11:31:23.755 9967-10054/org.cocos2d.demo W/System.err: Caused by: java.net.SocketTimeoutException: Read timed out
2023-09-27 11:31:23.755 9967-10054/org.cocos2d.demo W/System.err: at java.net.SocketInputStream.socketRead0(Native Method)
2023-09-27 11:31:23.756 9967-10054/org.cocos2d.demo W/System.err: at java.net.SocketInputStream.socketRead(SocketInputStream.java:119)
2023-09-27 11:31:23.756 9967-10054/org.cocos2d.demo W/System.err: at java.net.SocketInputStream.read(SocketInputStream.java:176)
2023-09-27 11:31:23.756 9967-10054/org.cocos2d.demo W/System.err: at java.net.SocketInputStream.read(SocketInputStream.java:144)
2023-09-27 11:31:23.756 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.Okio$2.read(Okio.java:140)
2023-09-27 11:31:23.757 9967-10054/org.cocos2d.demo W/System.err: at org.cocos2dx.okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
2023-09-27 11:31:23.757 9967-10054/org.cocos2d.demo W/System.err: … 11 more

下载网络设置了请求整体时间45s callTimeout

需要怎么设置

安卓 java代码中设置的