龙骨动画加载报错导致原生闪屏

  • Creator 版本: 2.4.5

  • 目标平台: Android

  • 重现方式:用了如燕插件动态加载本地外部资源时偶现会加载报错

  • 首个报错:
    2023-01-12 10:33:27.177 1134-1186/com.also.cognition.dev.toh E/jswrapper: [ERROR] (C:/D/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8/Object.cpp, 574): Invoking function (0x75d5cc3c40) failed!
    2023-01-12 10:33:27.194 1134-1186/com.also.cognition.dev.toh E/jswrapper: ERROR: Uncaught TypeError: Invalid value used as weak map key, location: jsb-adapter/jsb-engine.js:0:0
    STACK:
    [0]dbAtlas.updateTextureAtlasData@jsb-adapter/jsb-engine.js:2107
    [1]dbAtlas.init@jsb-adapter/jsb-engine.js:2144
    [2]_parseDragonAtlasAsset@src/cocos2d-jsb.js:48930
    [3]notify@src/cocos2d-jsb.js:48620
    [4]t.set@src/cocos2d-jsb.js:31152
    [5]anonymous@assets/main/index.js:11073
    [6]anonymous@assets/main/index.js:170223
    [7]anonymous@assets/main/index.js:170291
    [8]anonymous@src/cocos2d-jsb.js:11650
    [9]anonymous@src/cocos2d-jsb.js:31254
    [10]fireTimeout@jsb-adapter/jsb-builtin.js:2191
    [11]tick@jsb-adapter/jsb-builtin.js:2148

定位到对应位置是这行代码报错

打包测试过了一边所有动画,用的同样方法都能正常播放

  • 之前哪个版本是正常的:
  • 手机型号:
  • 手机浏览器:
  • 编辑器操作系统:
  • 重现概率:

如果把这段有问题的代码换成普通的 assetManager 加载方法的话,是否也有问题?

找到问题了,是我手动释放的时候出问题,因为不是立即释放,而是不清楚什么时候底层释放,比如我刚进游戏的时候执行了一次释放外部资源,然后这个时候加载了动画,过了两个回合又切到刚进来加载的动画的时候就会导致之前的动画被释放掉了,报了这个错,我这边只能先把释放注释了。释放管理这里还是不好搞

1赞