请教热更新流程,可以下载更新但是游戏界面没有改变?

我按照文档的热更新流程,先在项目中添加了热更新组件,指定了本地的project.manifest在asset目录下,本地manifest的版本1.0.1,然后修改了一些程序和UI,进行构建,然后用
node version_generator.js -v 1.0.2 -u http://远程地址/remote-assets/ -s ../jsb2/jsb-binary/ -d remote_manifest/
…/jsb2/jsb-binary/是我构建的jsb-binary目录,remote_manifest/是我创建用于保存project和version的目录,生成成功,然后我将jsb-binary下的res和src目录上传到http://远程地址/remote-assets/;再将生成的project.manifest和version.manifest上传到http://远程地址/remote-assets/。其中在本地的project.manifest中指定了远程的project.manifest和version.manifest地址:
"packageUrl":"http://远程地址/remote-assets/","remoteManifestUrl":"http://远程地址/remote-assets/project.manifest","remoteVersionUrl":"http://远程地址/remote-assets/version.manifest","version":"1.0.1"
客户端打开游戏可以检测到更新也可以下载更新,但是下载后重启游戏还是以前的版本界面。但是本地的版本已经改成1.0.2

检查搜索路径的设置

1赞

我下载的热更新资源包都放在本地目录:
this._storagePath = ((jsb.fileUtils ? jsb.fileUtils.getWritablePath() : '/') + 'HotUpdateSearchPaths');
下载完成后,我设置了搜索目录:

 var searchPaths = jsb.fileUtils.getSearchPaths();
 var newPaths = this._am.getLocalManifest().getSearchPaths();
Array.prototype.unshift(searchPaths, newPaths);
cc.sys.localStorage.setItem('HotUpdateSearchPaths', JSON.stringify                    (searchPaths));
jsb.fileUtils.setSearchPaths(searchPaths);

在main.js里也添加了:

if (cc.sys.isNative) {
var hotUpdateSearchPaths = cc.sys.localStorage.getItem(‘HotUpdateSearchPaths’);
if (hotUpdateSearchPaths) {
jsb.fileUtils.setSearchPaths(JSON.parse(hotUpdateSearchPaths));
}
}

还是不行…

是不是没更新完,进度条一闪就没了。

不是,刚才试了一下,我最先在初始化AssetManager的时候是按照官方示例:

this._am = new jsb.AssetsManager(’’, this._storagePath, versionCompareHandle);

刚才改了一下:

this._am = new jsb.AssetsManager(this.manifestUrl, this._storagePath, versionCompareHandle);

this.manifestUrl是程序目录下的project.manifest。可以下载,替换的图片(名字没变)可以生效,但是更改的js不生效、把一个场景的图片换了(图片及名字都换了)也不生效。

这是正常的结果,因为 unshift 根本不会改变数组的值,所以 searchpath 没变,你运行这个看结果

var searchPaths = ['a']
var newPaths = ['b']
Array.prototype.unshift(searchPaths, newPaths)
console.log(searchPaths)

官方的示例有问题,应该写 Array.prototype.unshift.apply(searchPaths, newPaths)

改了也不行,Array.prototype.unshift和Array.prototype.unshift.apply有区别吗,都是在头部添加元素

你的问题解决了吗我的也是这个问题啊 ,,急急急急急急急急急

老大哥解决了吗?遇到了同样的问题

同问。我也遇到了

2.0+版本是嘛 cocos自带模拟器不行 打包安卓后测试成功了

我用夜神模拟器测试,不行哎。就是这个问题

我这里是能下载更新,但是重启后还是旧版本的,兄弟遇到这个问题了吗?

我也碰到这个问题,请问有解决了的吗????

我也是能下载更新,但是重启后还是旧版本的,怎么解决

解决了吗大佬?我也是这样,资源不生效

没人处理吗