大佬们,当出现需要先加载其他bundle的错误时,怎么定位是哪个bundle依赖了哪个bundle?

cc.js:1 Please load bundle xxxx first Error: Please load bundle xxxx first

这种情况是一个bundle依赖了另一个bundle,但问题是我不知道是哪个bundle依赖了哪个bundle,除了一个一个试,有啥高智商的方法么?

理论上说你在打包前就应该知道依赖关系了,因为bundle包的优先级是你打包前就设计好了的

问题是不知道哪个预设手抖,直接挂了其他bundle里的资源,项目好几个人做,谁知道谁弄错了啊。而且美术、策划也不会像程序员那样注意这些。脑袋里知道依赖关系,不能保证现实世界完美运行。

版本:Creator2.4.6
我也遇到这个问题,明明bundleA (优先级1)跟 bundleB(优先级3) 没有任何依赖。甚至删除bundleB,bundleA也能正常运行。

但是bundleB加入后,使用bundleA.load时,就会报错,please load bundle “BundleB” first ! 当把bundleA的优先级设置成6,就OK了。

1赞

已经找到问题了,是因为bundleA里面有一些按钮的sprite模式,默认引用了内置的spriteframe。如下图。当我们把Transtition改成 Scale的时候,SPRITE模式的图片引用并没有移除。所以当BundleB也引用了这些内置图片时,Creator构建的时候这些图片就打到了优先级更高的模块BundleB里面。如果在BundleB之前加载BundleA就会产生报错。
image

3赞

估计你的也是类似原因吧,引用是必定存在的,可以去打包后的assets目录,各个Bundle的config.json文件里面,具体查找,到底是哪个资源,打包到另外一个bundle了。。看这个redirect就行
image

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。