问题:热更新后读取位置不对!
在做首个版本的时候,把hot文件中的资源移除使用,制作一个1.0.1的版本!
热更:然后在把hot中的资源拖到canvas上面,制作一个热更新包,热更新的内容能够被下载下来,但是项
目运行的时候读取的路径好像不太对,如图

但是实际上这个图片资源是处在resources文件中的

我看了下config文件也是在resources中

求助!
问题:热更新后读取位置不对!
在做首个版本的时候,把hot文件中的资源移除使用,制作一个1.0.1的版本!
热更:然后在把hot中的资源拖到canvas上面,制作一个热更新包,热更新的内容能够被下载下来,但是项
目运行的时候读取的路径好像不太对,如图

但是实际上这个图片资源是处在resources文件中的

我看了下config文件也是在resources中

求助!
更新版本是有挪动资源的目录吗?
请描述一下具体的复现步骤和提供复现 demo,我们排查看看。
大佬你好,请问能下载吗?
你使用的热更新方案应该还没有解决构建项目时如果勾选 md5 之后出现的 main.js 读取错误的问题。
可以试试更新一下热更方案,支持项目构建时使用 md5:
https://gitee.com/zzf2019/cocos-tutorial-hot-update/commit/8a1c013ac95826818f3d888954d2d7af090d95ac
可是我没有勾选使用MD5这个选项的
那就是其它问题了,可能是网络资源缓存问题,你需要修改一下网络资源存放的地址和资源请求链接再试试。
抱歉,回复晚了,我论坛邮箱配置有些问题,收不到邮件。
请问现在问题解决了吗?
我下载了你的 demo,发现「热更工具」插件是旧版本。我看已经有 v2 版本的插件。
https://forum.cocos.org/t/hot-update-tools-v2/70918
不知道你之前的插件是从哪里下载的?
找到原因了,是你热更新后,搜索路径没有重新设置。
你要保证每次进游戏,热更新的目录所在的路径是最高优先级的。
你的代码
case jsb.EventAssetsManager.UPDATE_FINISHED:
console.log('更新成功');
this._onUpdateFinished();
break;
_onUpdateFinished() {
this._assetsMgr.setEventCallback(null)
let searchPaths = jsb.fileUtils.getSearchPaths();
let newPaths = this._assetsMgr.getLocalManifest().getSearchPaths();
console.log("[HotUpdate] 搜索路径: " + JSON.stringify(newPaths));
Array.prototype.unshift.apply(searchPaths, newPaths);
jsb.fileUtils.setSearchPaths(searchPaths);
this._options.OnUpdateSucceed && this._options.OnUpdateSucceed();
}
你只在更新结束后去设置 SearchPath,这个是不对的。需要在每次启动游戏,用 jsb.AssetManager 检测后,不管需不需要更新,都要把 SearchPath 设置为 manifest 返回的。你漏了这一步。
是的,谢谢大佬,确实是这样,感谢!!!
这位好哥哥!你后来怎么解决的啊?我也遇到更新后不生效的问题了,我使用的3.8.3版本,然后看着官方案例写的。我发现提示更新了,也下载更新了,但是似乎资源没有生效似的,我不清楚问题出在哪里!!官方案例我对了3遍了,没有差异处。。。 