大版本 ~ 热更新报错

2021-07-14 14:42:39.901 32434-32463/? E/jswrapper: [ERROR] (/Users/oyhj/local/sx/sxbs/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/jsb_global.cpp, 184): Can’t decrypt code for src/cocos2d-jsb.jsc
2021-07-14 14:42:39.901 32434-32463/? E/jswrapper: ScriptEngine::runScript script src/cocos2d-jsb.js, buffer is empty!
2021-07-14 14:42:39.901 32434-32463/? E/jswrapper: [ERROR] Failed to invoke require, location: /Users/oyhj/local/sx/sxbs/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/jsb_global.cpp:300
2021-07-14 14:42:39.901 32434-32463/? E/jswrapper: ScriptEngine::evalString catch exception:
2021-07-14 14:42:39.902 32434-32463/? E/jswrapper: ERROR: Uncaught ReferenceError: CC_PHYSICS_BUILTIN is not defined, location: main.js:0:0
STACK:
[0]anonymous@main.js:167

最早使用的是creator 2.3.3 后来更新到最新版本的2.4.5 在creaotr 2.3.3就有使用热更新 热更新包就存在本地缓存内 现在大版本更新 直接商店内下载新包更新app 就报以上错误 直接黑屏 这个要怎么解决 总不能都让用户把旧的app都先删除了 再下载新包安装吧 ~ 删除重新下载确实是没有问题 就是旧包热更新本地缓存的问题。。。 mian文件本身代码有处理大版本删除本地缓存 搞不懂为什么还会报错。 有人遇到过吗!?

main.js 删除缓存是你实现的还是指文档上的。如果文档上的是删除的下载失败的临时缓存吧,是需要自行实现的。

mian.js还需要自己处理吗? 文档我并没有看到有处理大版本删除本地缓存的代码 ~ 这个要如何判断?

  1. 判断安卓的versionCode,这种方法必须保证每个包的versionCode都是递增的
  2. 判断包体内的manifest版本是不是比热更中的更高

到了内部我知道判断 但是现在启动的main.js就已经报错了。~ 直接黑屏 main.js 删除后cc.game.restart()方法都用不了。。

应该是2.4.5和2.3.3的main.js文件不一样,引入的文件不一致,你是不是把main.js中引入的那几个引擎文件也热更过

应该是没有的 按照报错信息看 应该是加密的编码不一致 ~ 旧版本热更新完 装上新版本 热更路径寻找 找不到原来加密编码的 settings.js 。main.js内是否能加入大版本判断 认到大版本直接清缓存重启?