2.4.0 热更新 window 包测试 热更新文件在远程正常更新下载 但是还是引用的老资源

  • Creator 版本:2.4.0

  • 目标平台:

  • 详细报错信息,包含调用堆栈:

  • 重现方式:正常热更新就可以

  • 之前哪个版本是正常的 :2.3.3

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

  • 出现概率:100%

  • 额外线索:
    2.4.0 windwo 测试热更新
    热更新文件在远程正常更新下载 但是还是引用的老资源 打包 md5 够不勾选都试了
    勾选md5 在热更新后 main 函数 中window._CCSettings 文件没有获得最新的
    不勾选 也是没有引用新下载的文件

2.4.0 要热更新 打包时 是必须勾选 md5 cache 吗?

2.4没问题,是你自己的问题

知道为什么了 已解决

请问是什么问题

热更新不能勾选md5 cache,如果勾选md5,需要自己在原生层实现更新 main.js 文件,main.js 加载的时候会将热更新目录添加到文件搜索路径,如果这一步出现异常,最终运行会加载到包内的旧文件。

2赞

你好,我这个问题应该怎么处理呢

2.4.0的热更新和之前不一样了,原来的res文件夹变成了assets。需要把version_generator.js中的res改为assets。

// readDir(path.join(src, 'res'), manifest.assets);
readDir(path.join(src, 'assets'), manifest.assets);

另外如果有在项目build-templates中自定义了build.gradle和main.js的,都要根据新版本构建出的这两个文件修改。

2赞

多谢提醒1

你好,你说的这个修改文件在哪里呢,没有找到

官方的热更新示例项目根目录下,有这个js文件,用于生成热更新描述文件的。你们没有用到吗?

没用用到啊 ,我热更的描述文件是用的热更插件生成的

这个例子我刚看了下,官方的这个脚本好像是该改过了,已经是asses了

热更的地址可以是https的吗 应该没关系吧

我看了下热更新插件的panel/index.js里有这一段,把两行的res改成assets试试吧。https应该没关系。

严重鄙视不结贴的人

这个问题应该是jsb.fileUtils.setSearchPaths(paths);没有生效,把有关setSearchPaths的函数放到window.boot();前面,附件是修改后的hot-update代码,用了正则替换,现在是没有问题,但是那天傻X们把main.js中的window.boot()去掉或改名,移位了,就不能保证了2.4.zip (2.8 KB)

我也遇见了一样的情况,能说一下怎么解决的嘛

参考一下2.4.x热更新详解,一步一步带你上岸