CocosCreator3.8.3热更新问题

之前用的是2.4.3的版本,实现了热更新.版本升级到3.8.3后发现热更新失效了.检查后发现有几点和之前不一样.
1:andriod打包目录多出一个data文件夹,其中data文件夹下的文件内容和assets一模一样,研究后发现最终打进apk的资源是data目录下的,(如果删除data则apk将没有资源)
image
data目录下的文件结构和assets下的目录结构如图
image
2:修改version_generator /readDir参数,将data下的目录内容写进project.manifest里
3:修改main.js将


贴在main.js第一行
4:将data目录以及project.manifest和version.manifest放在远端
5:目前遇到的问题.
(1)可以正常实现资源的下载,因为我发现blackjack-remote-asset目录已经有了改变后的文件, 并且下载完成后,重启了游戏
(2)**重启游戏后,资源并不是最新的,**看起来好像是setSearchPaths并没有生效,实际上打印出已经设置成功了setSearchPaths,(blackjack-remote-asset在目录内)
不知道哪个流程出了问题, 希望大神给予帮助和指正

是不是搜索路径列表顺序错了?需要将热更目录设置在路径列表最前面

没有啊, 是设置在第一个.这个代码在2.4.3上都是可以的

image
那可能是这里有点问题,看逻辑这个 storagePath 有点问题,如果它是以 / 结尾的,那么 tempPath 的值就会变成 xxxx/_temp/ ;如果它不是以 / 结尾的,底下的 dstPath 会变成 xxxxyyyy,中间会缺少一个 / 分隔。

我之前搞热更的时候是有对这个加了一层处理,其他的好像都一样了,资源下载到本地,重启,且setSearchPaths设置正确的话,应该没得问题才对。 :joy:

终于解决了, 问题还是出在目录结构上.不知道为什么 3.8.3打的包有两份一样的资源结构,version_generator 中应该使用的是assets下的资源 不应该自作聪明改成data下的
估计是因为project.manifiest下的目录和apk的目录结构对应不上导致的.虽然下载下来了,但是系统认为你下载的那个和我用的这个没关系

这个assets是直接link到data的,忘记之前在哪看到的了,好像是为了兼容一些旧的逻辑,才加的这个link。 :joy:
image

版本能不动就不动,每个版本都有特性,升级坑比较多 :rofl:

谢谢你,这玩意之前浪费了我两天时间,一直以为是searchpath出问题了.
刚从头梳理了一下,才发现问题的根源