3.82的spine报错Uncaught (in promise) RuntimeError: memory access out of bounds。

  • Creator 版本:3.82

  • 目标平台:谷歌浏览器PC

  • 重现方式:

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:win10

  • 重现概率:100%

3.82的spine报错Uncaught (in promise) RuntimeError: memory access out of bounds。

每次播放动画流程:
0: node移动到要播放特效的坐标,
1:动态设置skeletonData color timeScale ,然后setAnimation播放不同的动画

错误复现demo上传上百度网盘了,cocos传不上超过4M
链接:https://pan.baidu.com/s/1RVQ1qtWpndoHiGLe7bobhw?pwd=0ngb
提取码:0ngb
–来自百度网盘超级会员V1的分享

/**
*
*

  • 错误说明:
  • 1:this.spine.setAnimationCacheMode(sp.AnimationCacheMode.SHARED_CACHE); sp缓存模式
  • 2:this.spine.skeletonData = this.node.parent.getComponent(test).skeletonData; 播放动画前动态设置data
  • 3:poolfreeMaxCount node对象池设置空闲长度,put的时候,检测pool空闲数量,超过最大长度,自动destroy .
  • 这三项并存,百分百报:RuntimeError: memory access out of bounds
  • 目前解决方案:
  • 1:不使用SHARED_CACHE缓存模式
  • 2:不动态设置skeletonData,只在初始化前设置一次, 但是无法复用节点播放不同的动画.
  • 3:不destroy对象池node

*/

多次循环后,就会memory access out of bounds。QQ截图20231213162150QQ截图20231213162221QQ截图20231213162323

感谢反馈,已在该issue跟进

目前已经修复,下个迭代版本可以正常使用

什么时候发布?

看到3.8.2源码已经修复,但是好像3.8.3没有修复。

                if (this._skeletonCache && this._skeletonData) {

                  

                   this._skeletonCache.removeSkeleton(this._skeletonData.uuid);

               }

另外,请教一下,自己编译引擎,好像也不能直接跳转到源码实现,只能跳转到d.ts声明。
请教下有啥好办法吗,可以直接跳转到源码实现,可以方便查看ts源码?

目前3.8.2公测,3.8.3还没放出吧?

自己编译的

月底前应该会有一个382的更新版,不确定你这边的跳转到源码实现是用来干嘛的,如果是debug用,wasm的调试需要编译debug版本,然后chrome装插件就可以调试c++代码逻辑。

一个重度依赖spine的项目,3.8.1有内存泄漏问题,尝试3.8.2,立马又遇到这个一样的问题,太悲哀了!

3.8.2 正式版本mac环境 还是会出现这个报错

@song2008_2001

项目工程里的缓存有清掉?
可以考虑用一个干净的工程,不包含临时生成的文件;另外确保用的是正式的引擎,然后重新构建完验证下

​​20240407-120716 是同样的问题吗

3.8.2同样的问题,因为在使用动画之前动态设置了skeletonData,然后就莫名其妙的报错了,也没有修复啊

  1. 清空项目缓存文件,可以用git clean -xfd
  2. creator ide , 开发->编译引擎
    尝试以上步骤试下,如果还有问题,烦请提供下demo

3.8.3遇到这个问题了,麻痹,被坑了,咋搞

3.8.3的新项目都有这问题

有可复现demo吗?

退回3.7.4了,暂时没发现问题

3.8.2,3.8.3,3.8.4全部发现这个问题。3.7.4正常,看起来并没有解决啊。
我也是动态设置skeletonData的。我其实不喜欢这么做,但接手的项目大量用这种用法,我也是无奈啊。


程序看起来并没有卡住,开发时能不能先别出Error黑框了。console里面来个错误就行了啊。


3.8.4也同意出现这个问题,动态设置skeletonData很容易出现

可以上传个demo 吗,谢谢