资源加载有概率出现场景资源加载失败,异常捕获也抓取不到

  • Creator 版本: 3.8.3

  • 目标平台: 微信小游戏

  • 重现方式:未知

加载资源后,加载场景有一定概率出现scene文件丢失问题,有没有大哥知道是什么原因呢,异常捕获也抓不到。

 private Loadingdata(bundlename: string, finshedcount: number, curcount: number): Promise<loadstatedata> {
    return new Promise((resolve) => {
        try {
            assetManager.loadBundle(bundlename, (err, bundle) => {
                if (err) {
                    if (CustomData.umastate) {
                        CustomData.Api.uma.trackEvent('error', { "details": `加载包名${bundlename}错误,用户id${sys.localStorage.getItem('userid')},${err}` });
                    }
                    resolve({ 'state': false, 'errmsg': err })
                } else {
                    bundle.loadDir('', (finshed, total) => {
                        this.UpdateUi(finshed, total, finshedcount, curcount)
                    }, (err, assets) => {
                        if (err) {
                            if (CustomData.umastate) {
                                CustomData.Api.uma.trackEvent('error', { "details": `加载资源错误,用户id${sys.localStorage.getItem('userid')},${err}` });
                            }
                            resolve({ 'state': false, 'errmsg': err });
                        } else {
                            resolve({ 'state': true, 'errmsg': '' })
                        }
                    })
                }
            })
        } catch (err) {
            this.errcount += 1;
            if (this.errcount < 3) {
                this.loaddata();
                if (CustomData.umastate) {
                    CustomData.Api.uma.trackEvent('error', { "details": `用户id${sys.localStorage.getItem('userid')},加载页面捕获错误:${err},来源:${Loaddata.scenefrom},加载场景:${Loaddata.scenename}` });
                }
                resolve({ 'state': false, 'errmsg': err })
            } else {
                let labelnode = find('Canvas/Label');
                labelnode.getComponent(Animation).stop();
                labelnode.getComponent(Label).string = '加载失败';
                resolve({ 'state': false, 'errmsg': err });
            }
        }

    })
}

顶一下!!!!!!!!!!!!!

测试下来确定是,首次加载包的时候网络不好,后面网络正常后,就会出现此问题

场景资源信息可以拿到,就是director.loadScene会报错

有没有大佬知道怎么处理呀

就没有大哥遇到的吗

你有没有重复load,或者通过assetManager提前load了场景

我的操作是通过assetManager load bundle,load成功后,通过bundle.loaddir(’’)加载bundle下所有文件,场景是在bundle下的,所以,应该是算是提前load了场景吧

之前遇到过这个报错,反正是因为多次load场景导致的,具体原因不确定,后来我改成用preload了

1赞

好的,谢谢,我调整下逻辑