我打印了搜索目录和热更新目录。
我在hook.js 打印 window.native 是undefined ?? 没有走到 native.fileUtils.setSearchPaths 这里呢,问题是不是出在这里呢?
这不官方案例就这样子嘛?我就是jsb 改成native 了呢。

请问 url/remote-assets 对应的是build 目录吗?然后自己处理android / ios ?
对了,你的资源全得放到getwritablePath()+path+"/assets/"目录下,这是硬伤
所有的资源都要放到assets目录下,这是前提 ,否则就算下下来了也没用
是build目录
是我服务器上的remote-assets/android/assets/* 对应本地bulid/android/assets/* 这样?
是我服务器上的 remote-assets/android/assets/* 对应本地bulid/android/assets/* 这样?
是的,是你build出来的文件夹里的 
好的谢谢。我先解决native.fileUtils.setSearchPaths 不生效的问题吧。感觉解决这个就离成功不远了呢。
所以这就是 manifest 和 bundle 热更的区别 
bundle 热更只需要调用一个函数就行了,除了版本号其他什么都不管
你下载的文件得保存在可写路径的assets目录下,这点很重要,失败也是因为这个,比如说getWritablePath()+“hotupdateRoot/assets”,要不然就算是下载成功了也找不到
你的native.fileUtils.getSearchPaths();全是内置目录 都没有你的自定义目录 浓墨老哥说得很清楚了 你自己仔细看
感谢各位好心大佬回帖,问题似乎已经解决了。
原来一直不生效的问题,就是没有执行到 native.fileUtils.setSearchPaths(paths);
我在hook.js 中调整了一下,已经可以正常拉取到更新了。不清楚的是为啥之前官方案例hook.js会闪退,有点奇怪。
(function () {
const native = globalThis?.jsb || window.jsb || native;
if (typeof native === 'object') {
var hotUpdateSearchPaths = localStorage.getItem('HotUpdateSearchPaths');
if (hotUpdateSearchPaths) {
var paths = JSON.parse(hotUpdateSearchPaths);
native.fileUtils.setSearchPaths(paths);
var fileList = [];
var storagePath = paths[0] || '';
var tempPath = storagePath + '_temp/';
var baseOffset = tempPath.length;
if (native.fileUtils.isDirectoryExist(tempPath) && !native.fileUtils.isFileExist(tempPath + 'project.manifest.temp')) {
native.fileUtils.listFilesRecursively(tempPath, fileList);
fileList.forEach(srcPath => {
var relativePath = srcPath.substr(baseOffset);
var dstPath = storagePath + relativePath;
if (srcPath[srcPath.length - 1] === '/') {
native.fileUtils.createDirectory(dstPath)
}
else {
if (native.fileUtils.isFileExist(dstPath)) {
native.fileUtils.removeFile(dstPath)
}
native.fileUtils.renameFile(srcPath, dstPath);
}
})
native.fileUtils.removeDirectory(tempPath);
}
}
}
})();
+1
在资源文件里固定热更地址,感觉完全不适用于网络游戏
我们都是改引擎 由服务端控制热更地址
请问热更下载新资源中闪退了,比如下载了20%资源后就闪退了,这种是哪里的问题呢?
看看崩溃前的日志
大佬,我有个问题想要请教,我这边热更是通过下载zip包解压到包体的可读取路径,添加了搜索路径优先级也是最高级,但是始终不会读取新的路径上的资源,一直读的老的
看了下 代码很少
但是不懂原理
也不知道有什么约定俗成的东西
热更的内容要怎么准备和部署呢
什么叫 bundle热更 还没见过这个方式

