creator ios 热更新bug 更新完后,热启动总是报错

JS Exception: i is null, file: ***/build/jsb-default/src/jsb_polyfill.js, lineno: 1

Stack: [23]</x<.addChild@/build/jsb-default/src/jsb_polyfill.js:1:115243
[136]</y/n[s]@
/build/jsb-default/src/jsb_polyfill.js:1:376963
require<.Login</<.onLoad@/build/jsb-default/src/project.js:1:159048
anonymous@
/build/jsb-default/src/jsb_polyfill.js line 1 > Function:1:63
[47]</p<.invoke@/build/jsb-default/src/jsb_polyfill.js:1:141048
[113]</y<.activateNode@
/build/jsb-default/src/jsb_polyfill.js:1:330949
[24]</cc.Scene<._activate@/build/jsb-default/src/jsb_polyfill.js:1:118987
[200]</<.runSceneImmediate@
/build/jsb-default/src/jsb_polyfill.js:1:593842
[200]</<._loadSceneByUuid/<@/build/jsb-default/src/jsb_polyfill.js:1:595903
[135]</v.loadAsset/<@
/build/jsb-default/src/jsb_polyfill.js:1:371161
[98]</b.load/u</<@/build/jsb-default/src/jsb_polyfill.js:1:303206
[156]</n.exports.callInNextTick/<@
/build/jsb-default/src/jsb_polyfill.js:1:430185
[84]</l.once/r@/build/jsb-default/src/jsb_polyfill.js:1:263077
[83]</r.prototype.invoke@
/build/jsb-default/src/jsb_polyfill.js:1:260861
[84]</l.emit@/build/jsb-default/src/jsb_polyfill.js:1:263527
[200]</cc.Director._beforeUpdateListener.callback@
/build/jsb-default/src/jsb_polyfill.js:1:597088

JS Exception: self.loadObj is null, file: ***/build/jsb-default/src/project.js, lineno: 1

Stack: _onLadResBack@/build/jsb-default/src/project.js:1:157087
Function.prototype.bind/fBound@/var/mobile/Containers/Bundle/Application/
/深海大作战.app/script/jsb_boot.js:731:20
[98]</b.loadRes/<@
/build/jsb-default/src/jsb_polyfill.js:1:304946
[98]</b.load/u</<@
/build/jsb-default/src/jsb_polyfill.js:1:303206
[156]</n.exports.callInNextTick/<@
/build/jsb-default/src/jsb_polyfill.js:1:430185
[84]</l.once/r@
/build/jsb-default/src/jsb_polyfill.js:1:263077
[83]</r.prototype.invoke@
/build/jsb-default/src/jsb_polyfill.js:1:260861
[84]</l.emit@
/build/jsb-default/src/jsb_polyfill.js:1:263527
[200]</cc.Director._beforeUpdateListener.callback@
*/build/jsb-default/src/jsb_polyfill.js:1:597088

建议你先用 debug 模式(包括远程版本)看看报错的具体原因,release 模式下不好定位

好像ios不支持zip,一直压缩import.zip, 不压缩资源可以,但是进度一直返回0,android就可以压缩import.zip,还有资源编译完还分了平台吗,android用jsdefault目录下的src res会报错,只能用android项目目录的asset下的src res,ios是直接用jsdefault下的资源

iOS 也支持 zip 压缩,资源编译完不分平台,不过我觉得我可能没听懂你在说什么

构建之后,更改main.js和编译是否有顺序,编译是否编译main.js。

另外希望cocos团队能把编译js和编译native库,打包,三个功能分开,跟平台有关的功能很多时候会在短时间内只反复更改js,实际只是反复改一两行js,然而只要改一句又得构建,编译来一遍,太浪费时间,尤其android编译时间特别长,反复改一两行js,也不用多只要改10来次一个小时就耗尽去了。而打包的步骤大多会去eclipse androidstudio xcode环境里去打包。

刚才那个进度问题,公司用的ipod测试,原来下载过程中内存不够,界面就不刷新了,还以为进度一直返回0

所以现在热更新还有问题吗?

ios把import目录压缩成zip还是会热启动报那个错
编译是否编译main.js

不会编译 main.js, debug 模式的错误可以再发出来一下,比较能定位是哪里的问题

调试模式的错误,没看出来区别

JS Exception: child is null, file: ***/Documents/blackjack-remote-asset/src/jsb_polyfill.js, lineno: 6830

Stack: [23]</Node<.addChild@/Documents/blackjack-remote-asset/src/jsb_polyfill.js:6830:35
onLoad@
/Documents/blackjack-remote-asset/src/project.dev.js:6144:17
anonymous@/Documents/blackjack-remote-asset/src/jsb_polyfill.js line 8485 > Function:1:63
[47]</OneOffInvoker<.invoke@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:8439:21
[113]</NodeActivator<.activateNode@/Documents/blackjack-remote-asset/src/jsb_polyfill.js:19105:25
[24]</cc.Scene<._activate@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:7000:21
[200]</<.runSceneImmediate@/Documents/blackjack-remote-asset/src/jsb_polyfill.js:34236:25
[200]</<._loadSceneByUuid/<@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:34336:33
[135]</AssetLibrary.loadAsset/<@/Documents/blackjack-remote-asset/src/jsb_polyfill.js:21518:37
[98]</proto.load/queue</<@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:17347:33
[156]</module.exports.callInNextTick/<@/Documents/blackjack-remote-asset/src/jsb_polyfill.js:25139:25
[84]</proto.once/cb@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:14965:21
[83]</EventListeners.prototype.invoke@/Documents/blackjack-remote-asset/src/jsb_polyfill.js:14841:37
[84]</proto.emit@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:14984:72
[200]</cc.Director._beforeUpdateListener.callback@***/Documents/blackjack-remote-asset/src/jsb_polyfill.js:34372:21

JS Exception: self.loadObj is null, file: ***/Documents/blackjack-remote-asset/src/project.dev.js, lineno: 6057

Stack: _onLadResBack@/Documents/blackjack-remote-asset/src/project.dev.js:6057:1
Function.prototype.bind/fBound@/var/mobile/Containers/Bundle/Application/
/深海大作战.app/script/jsb_boot.js:731:20
[98]</proto.loadRes/<@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:17456:41
[98]</proto.load/queue</<@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:17347:33
[156]</module.exports.callInNextTick/<@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:25139:25
[84]</proto.once/cb@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:14965:21
[83]</EventListeners.prototype.invoke@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:14841:37
[84]</proto.emit@
/Documents/blackjack-remote-asset/src/jsb_polyfill.js:14984:72
[200]</cc.Director._beforeUpdateListener.callback@
*/Documents/blackjack-remote-asset/src/jsb_polyfill.js:34372:21

app重启就可以,下载压缩成zip的更新,热重启就报错

line 有了,看看这是什么组件的 onLoad,里面做了什么

不好意思又是内存问题,ipod不行,iphone就可以,是不是之前的game实例没有销毁回收掉内存

那么编译能把编译js独立出来吗,以后能否把编译功能的编译本地库,编译js,和打包分开呢,只改js编译太浪费时间了

可以这样,你构建完之后,就用 Xcode / Visual Studio 编译运行

每次改完 js,只做构建操作(相当于只编译 js),Xcode VS 都能做到秒编译运行,我都是这么操作的

但是,如果项目使用了自动图集配置,那构建起来也比较感人啊。。。。。。:joy::joy::joy::joy::joy: