3.4.0 打开UI界面 大概率出现Cannot read properties of null (reading 'getGFXTexture')

1赞

发现如果是UI界面加入模型 然后打开其他界面会有几率触发这个错误

我这边试了下没出现,能提供能测试的demo?

请问解决了吗

没有 随缘了 有时候会出现 有时候又没有 没去管它了

有时候会出现 有时候又没有 没去管它了

我这里必现

赶紧@官方一下 这个bug很严重 直接导致卡死

怎么必现?

遇到过,应该是使用了已经释放的资源导致的

确实是我这边使用了已经释放的资源造成的。

倾向这个问题导致的,大概率是池子中节点的组件引用了已经释放的资源,解决方案应该是两个

  1. 做好对象重置,然后每次复用重新加载
  2. 确保用到的资源不被释放(警惕主动 release 和场景的自动释放)

我放入对象池 没有使用自己的其他组件 也没有去销毁 并且用的时候还判断了

从报错看是 SpriteFrame 被销毁了,是不是切换了场景?

没有多场景 小游戏 单场景

放入对象池 有很大概率会出现 现在不放入 就没出现过

我看了一下相关的源码

我们在 commitComp 里面是有做检查和判断的,按理说不应该出现你现在遇到的报错

可以在报错的地发下个断点看看对象状态。你的报错是调用 frame.getGFXTexture() 的时候 frame 是 null

是的 我也看过这里的源码 判断无效 所以说不知道问题在哪里 这是最致命的

这个要调试的,JS 中基础的判断不太可能失效。要不你放一个可以重现的在线链接,我们试一下

又发现一个问题 就是模型在3d场景显示正常 在2dUI有一张贴图不显示 直接是黑色的 一张可以显示 总共有两张贴图