热更问题

  • Creator 版本:1.7.0

  • 目标平台: iOS / 模拟器

  • 出现概率:100%

更新成功后跳转场景,报错:
RROR: TypeError: e[1].split is not a function. (In ‘e[1].split("&")’, ‘e[1].split’ is undefined), location: src/jsb_polyfill.js:13986:11

我看了下jsb_polyfill的代码(还是搞不懂原因):

100: [ (function(i, n, o) {
var r = i("../platform/callbacks-invoker"), s = i("../utils/CCPath"), c = i("../platform/js"), a = 0 | 998 * Math.random(), h = {}, l = [], u = {
WORKING: 1,
COMPLETE: 2,
ERROR: 3
}, d = {};
function f(i, n) {
var o = "object" === ("object" === (e = typeof i) ? t(i) : e) ? i.url : i, r = {
queueId: n,
id: o,
url: o,
rawUrl: void 0,
urlParam: (function(t) {
if (t) {
var e = t.split("?");
if (e && e[0] && e[1]) {
var i = {};
e[1].split("&").forEach((function(t) { // 就是这行
var e = t.split("=");
i[e[0]] = e[1];
}));
return i;
}
}
})(o),

还有一个错误:loadScene: Failed to load scene ‘%s’ because ‘%s’ is already loading。
更新从头到尾都没加载过这个场景,不知道为什么会报这个错误!

更新和登录是不同的场景,现在是更新完成后跳转到登录场景就报错,一直卡在更新场景。

刚才又试了一下,不调用cc.game.restart();重启游戏,loadScene: Failed to load scene ‘%s’ because ‘%s’ is already loading 这个错误就没有了,只剩最上面那个错误。

热更新都是用的官方demo上面的代码。

官方能帮忙看看么?? 很急。。。

@panda @dumganhar 帮忙看看,谢谢。。。:joy:

@panda @dumganhar 找到问题所在了,登录场景有一个 dragonbones,dragon asset 和 dragon atlas asset没有设置,就报错了(至于为什么报错,不知道,这得问官方???)?

至于为什么一直没发现这个问题,主要是之前初始场景一直都是login(如果设置成初始场景 就没问题)

loadScene: Failed to load scene ‘%s’ because ‘%s’ is already loading。这个报错 是因为调用更新的脚本挂在了封装更新方法脚本的前面(反正我移动下顺序就没问题了)。。。

我也碰到这个问题,不知道什么情况