creator 2.4.4 更新后打微信包,直接报错。_destroyImmediate

creator 2.4.4 this._components[t]._destroyImmediate(); 报没有_destroyImmediate这个方法
生成微信版,在微信开发者工具报错。
我看插件版本号是"version": “2.4.5”

如果不想退编辑器版本 使用通用插件的话是不是game.json里面改2.4.3就OK了。
然后本地插件版的就修改代码

不用微信插件,会报错么

会报错。。。

那跟微信没关系,你这个看起来是对象被释放了两次,怎么触发的

这个还没查,升级版本前还好好,升级后发生的,我去查查

或者方便给个demo么

找到问题了,我在初始场景中有一段代码
if (this && this.node && this.node.isValid) this.node.destroy();
销毁了某个节点,把这段注释了就好了。。
我新建了个项目测试了下也没问题。可能是代码逻辑哪有问题把,理下去。

就只有一个地方destroy一个节点 他就出这个问题了,但是其他地方都是好的。奇奇怪怪的。

removeFromParent 后再释放?可能是这里释放了一次,切换场景的时候引擎会自动释放一次,所以变成两次释放了

removeFromParent 也会有这个错误。
那个时候没有切换场景,只是简单的destroy了某个节点。 我在测试项目有destroy的地方,发现还有其他地方也会这样。

那可以打印一下调用栈,看看什么地方调用的

我log了destroy的那个方法只有一处调用他,他所在的父节点也一直都存在,但是他就是报错。creator运行没报错,只有微信/QQ开发者工具和真机会报错
我准备退回2.4.3了,切个场景也会有这个问题,不知道是不是和使用了小游戏分包有关系,新建的空项目都没啥问题。

那可能是在调用前就不对了,你可以看下调用前的 ObjFlag 是什么

objFlags是0 destroy后是4
image

换回2.4.3就好了,这个错会一直报还得切后台暂停下,不然开发者工具都会崩了

image

能给个 demo 么

image
这样写就不报错了

2.4.4解决了个模型显示的bug 还不得不用

我是改了引擎,在CCNode这个类_onPreDestroy方法里修改成这样:
try {
var destroyByParent = this._onPreDestroyBase();
} catch(err) {
return;
}

我的问题是进入不了场景,同样是微信端报错,网页调试版没有问题,改完之后就能进入场景,但是还是会报错