cocos2dx 3.16版本安卓热更新问题,求解引擎团队

背景:安卓手机在热更新时多次断开网络和重新连接网络,不确实是没有下载成功或者下载成功没有写入,或者文件损坏,导致一些热更新文件使用不了,容易出现闪退,iOS不会出现。
iOS在网络断开后马上收到 ERROR_UPDATING 和 UPDATE_FAILED 这两个更新错误的回调,但安卓不会马上收到这两个回调,需要等一段时间才会有这个回调,或者多次断开网络和重新连接网络才会有这个回调。请问我该怎么排查这个问题?
引擎版本:cocos2dx lua 3.14,3.15,3.16都有这个问题

self:updateFailure() 仅仅弹出弹窗,点击弹窗的确定按钮 调用以下方法重启lua虚拟机
require(“app.MyApp”):create():run()
@minggo

@minggo @panda @wangzhe
各位大大能帮忙看下吗
重现步骤:热更新时断开网络然后马上连接网络,等引擎继续热更新时(就是收到UPDATE_PROGRESSION 回调),再重复刚才的步骤断开网络然后马上连接网络,一直重复这样的操作,直到收到 ERROR_UPDATING 和 UPDATE_FAILED 这两个更新错误的回调,基本就能复现出来,如果没有复现,可以继续重复这样的操作,直到更新进度100%
安卓手机

兄弟,问题解决了吗?

没解决,应该是热更新时断网重连,断点续传导致文件损坏了,如果你解决了分享一下

在本地可以校验上次热更新是否成功吗?如果更新没有成功,删除失败的更新文件,重新更新

目前我是每次在下载之前就删除本地文件,但是还是有问题

下载完成之后,有办法校验下载结果是否正确吗

是用这个方法校验吗?但是我看了一下,这个方法好像是一个空方法,请问大神能不能提供一下校验代码

只能提供一个通用的思路,校验代码你需要自己解决,或者找一些类似的项目,看看别人的下载校验怎么做的

因为网络传输这个事情,本身就是不可靠的,所以在正式使用下载的资源前,肯定需要校验一下,校验成功就执行接下来的逻辑,校验失败就重新下载。

代码注释给出了,可以用 md5 校验,这个校验大概的逻辑是,服务器有待更新的文件,同时在服务器对这些待更新的文件生成 md5 哈希值,下载完成后,再次对下载的文件做 md5 摘要,比较下载后文件生成的 md5 值,与服务器保存的对应文件的 md5 值,判断是否相同,相同证明文件下载成功。