cocos / cocos-engine

Cocos simplifies game creation and distribution with Cocos Creator, a free, open-source, cross-platform game engine. Empowering millions of developers to create high-performance, engaging 2D/3D games and instant web entertainment.
https://www.cocos.com/en/creator
Other
8.83k stars 2.05k forks source link

[Native] 通过`cc.assetManager.loadAny` 和 uuid 加载主包内资源时, 有意外报错 导致加载流程被阻塞. #17882

Open finscn opened 1 week ago

finscn commented 1 week ago

Cocos Creator version

3.8.4

System information

android

Issue description

代码如下

        cc.assetManager.loadAny({ uuid: uuid },
            { bundle: 'main' },
            (err: Error, asset: cc.SpriteFrame) => {
                  // ... ...
            });

以上代码 在 web 和小程序里 都能正常执行. 但是在 原生环境执行, 出现下面的错误

image

对应的 引擎代码 image

在报这个错误后, 再过几秒钟, 要加载的资源还是被加载了出来. 但是 这个几秒钟明显时间过长 , 该资源为主包内的本地图片, 不到100k. 不知道是否是这个报错 引起了 内部的重试 等待 超时一类的机制, 导致加载时间过长.

Relevant error log output

No response

Steps to reproduce

如上

Minimal reproduction project

No response

longchuan commented 4 days ago

loadAny本身是异步的,err会返回错误,需要在完成函数里处理才会不加载。