构建时报错 Maximum call stack size exceeded

  • Creator 版本: 3.8.3

  • 问题描述:
    构建微信小游戏时报错([Assets] Maximum call stack size exceeded),部分报错日志如下:

debug: [Build Memory track]: Build Assets start:603.60MB, end 609.44MB, increase: 5.83MB
2024-10-30 15:26:58 - debug: run build task Build Assets failed!, progress: 31%
2024-10-30 15:26:58 - debug: [Build Memory track]: builder:build-project-total start:892.38MB, end 609.45MB, increase: -289716.81KB
2024-10-30 15:26:58 - log: Asset DB is resume!
2024-10-30 15:26:58 - debug: builder:build-project-total (333681ms)
2024-10-30 15:27:01 - debug: build success in 333681!
2024-10-30 15:27:01 - error: RangeError: Maximum call stack size exceeded
at C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\builder\dist\worker\builder\asset-handler\bundle\index.ccc:1:13289
at Array.map ()
at BundleManager.packImage (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\builder\dist\worker\builder\asset-handler\bundle\index.ccc:1:13280)
at BundleManager.buildAsset (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\builder\dist\worker\builder\asset-handler\bundle\index.ccc:1:4373)
at BuildTask.handle (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\builder\dist\worker\builder\tasks\build-task\asset.ccc:1:239)
at BuildTask.runBuildTask (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\builder\dist\worker\builder\index.ccc:1:12858)
at BuildTask.run (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\builder\dist\worker\builder\index.ccc:1:4291)
at build (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\builder\dist\worker\index.ccc:1:3967)
at Ipc. (C:\ProgramData\cocos\editors\Creator\3.8.3\resources\app.asar\builtin\builder\dist\worker\msg-util.ccc:1:206)
2024-10-30 15:27:01 - debug: ================================ build Task (wechatgame) Finished in (5 min 37 s)ms ================================

完整构建日志见附件:
wechatgame2023-5-25 09-24.zip (234.8 KB)

从 log 看在自动图集的地方有递归调用,但是我们试了几个工程无法复现,如果有demo可以私信发给我,这样我们可以比较快速的定位问题。

目前还没有尝试出必然重现的 demo,原工程又比较大没法直接提供。

想问下如果在没有 demo 的情况下,还有没有办法可以定位问题?

比较困难,看了完整的log,但是并没有找到比较有用的信息

这么大的assets,怎么装进小游戏

这个应该已经到了限制,不能增加了,就超出调用了

根据目前测试的结果来看的确与自动图集有关,把项目中的其中一个自动图集目录下的 pac 文件删除掉就可以打包成功了。

目前打算把自动图集换成静态图集先绕过这个问题 :joy:

都是远程包里的资源,主包没有这么大

这边显示的是构建时候使用的内存,并不是说他实际包体

同样的错误,但是没有使用自动图集,当前文件夹下的图集资源超过12个之后也报这个错误,请问大概是什么问题

2025-3-12 15:31:34 - debug: excute-script over with build-script 22675ms

2025-3-12 15:31:34 - debug: Copy externalScripts success!

2025-3-12 15:31:34 - debug: Build script in bundle success, progress: 19%

2025-3-12 15:31:34 - debug: 构建项目脚本 in (22822 ms) √, progress: 19%

2025-3-12 15:31:34 - debug: 构建引擎脚本 start…, progress: 19%

2025-3-12 15:31:34 - debug: Use cache engine: {link(C:\Users\Administrator\AppData\Local\Temp\CocosCreator\3.8.4\builder\engine\ac20aa0cbb56a83cbe39e78ff704a1a6)}

2025-3-12 15:31:34 - debug: {“debug”:true,“sourceMaps”:false,“includeModules”:[“2d”,“3d”,“animation”,“audio”,“base”,“dragon-bones”,“gfx-webgl”,“gfx-webgl2”,“intersection-2d”,“legacy-pipeline”,“marionette”,“meshopt”,“particle-2d”,“physics-2d-box2d”,“physics-ammo”,“procedural-animation”,“profiler”,“spine”,“tiled-map”,“tween”,“ui”,“websocket”],“engineVersion”:“3.8.4”,“md5Map”:[],“engineName”:“cocos-js”,“platform”:“HTML5”,“useCache”:true,“nativeCodeBundleMode”:“both”,“wasmCompressionMode”:false,“split”:false,“assetURLFormat”:“runtime-resolved”,“output”:“D:\sbk2\trunk\Client\Game\build\web-mobile\cocos-js”,“flags”:{“DEBUG”:true,“WEBGPU”:false},“entry”:“D:\CocosCreator\editors\Creator\3.8.4\resources\resources\3d\engine”}

2025-3-12 15:31:35 - debug: 构建引擎脚本 in (263 ms) √, progress: 19%

2025-3-12 15:31:35 - debug: Copy plugin script …, progress: 19%

2025-3-12 15:31:35 - debug: Generate import-map…, progress: 19%

2025-3-12 15:31:35 - debug: // ---- build task 打包脚本 ---- (36985ms)

2025-3-12 15:31:35 - debug: run build task 打包脚本 success in 36 s√, progress: 24%

2025-3-12 15:31:35 - debug: [Build Memory track]: 打包脚本 start:1381.67MB, end 1374.62MB, increase: -7216.04KB

2025-3-12 15:31:35 - debug: Build Assets start, progress: 24%

2025-3-12 15:31:35 - debug: // ---- build task Build Assets ----

2025-3-12 15:31:35 - debug: Build bundles…, progress: 24%

2025-3-12 15:31:35 - debug: Pack Images start, progress: 24%

2025-3-12 15:31:35 - debug: [Build Memory track]: Build Assets start:1374.67MB, end 1385.14MB, increase: 10.48MB

2025-3-12 15:31:35 - debug: run build task Build Assets failed!, progress: 29%

2025-3-12 15:31:35 - debug: [Build Memory track]: builder:build-project-total start:1026.40MB, end 1385.17MB, increase: 358.77MB

2025-3-12 15:31:35 - log: Asset DB is resume!

2025-3-12 15:31:35 - debug: start refresh asset from D:\sbk2\trunk\Client\Game\assets\bundle\common\texture\auto-atlas.pac…

2025-3-12 15:31:35 - debug: refresh asset D:\sbk2\trunk\Client\Game\assets\bundle\common\texture success

2025-3-12 15:31:35 - debug: remove asset D:\sbk2\trunk\Client\Game\assets\bundle\common\texture\auto-atlas.pac success

2025-3-12 15:31:35 - debug: builder:build-project-total (65273ms)

2025-3-12 15:31:39 - debug: build success in 65273!

2025-3-12 15:31:39 - error: RangeError: Maximum call stack size exceeded

at D:\CocosCreator\editors\Creator\3.8.4\resources\app.asar\builtin\builder\dist\worker\builder\asset-handler\bundle\index.ccc:1:13372

at Array.map (<anonymous>)

at BundleManager.packImage (D:\CocosCreator\editors\Creator\3.8.4\resources\app.asar\builtin\builder\dist\worker\builder\asset-handler\bundle\index.ccc:1:13363)

at BundleManager.buildAsset (D:\CocosCreator\editors\Creator\3.8.4\resources\app.asar\builtin\builder\dist\worker\builder\asset-handler\bundle\index.ccc:1:4373)

at BuildTask.handle (D:\CocosCreator\editors\Creator\3.8.4\resources\app.asar\builtin\builder\dist\worker\builder\tasks\build-task\asset.ccc:1:239)

at BuildTask.runBuildTask (D:\CocosCreator\editors\Creator\3.8.4\resources\app.asar\builtin\builder\dist\worker\builder\index.ccc:1:13301)

at BuildTask.run (D:\CocosCreator\editors\Creator\3.8.4\resources\app.asar\builtin\builder\dist\worker\builder\index.ccc:1:4291)

at build (D:\CocosCreator\editors\Creator\3.8.4\resources\app.asar\builtin\builder\dist\worker\index.ccc:1:4259)

at Ipc.<anonymous> (D:\CocosCreator\editors\Creator\3.8.4\resources\app.asar\builtin\builder\dist\worker\msg-util.ccc:1:206)

2025-3-12 15:31:39 - debug: ================================ build Task (web-mobile) Finished in (1 min 9 s)ms ================================

你好,你可以试一下论坛版的 3.8.6

成功了,多谢

大佬。项目刚上线不方便升级引擎有没有其它解决方式 :neutral_face:

这是一个资源大数量级直接 … 展开导致的问题,不升级引擎的话,只能对大资源数量的 Bundle 做一下拆分,会影响项目结构。估计只能升级引擎。

感谢大佬回复,现在项目刚线上阶段在跑不太好动这部分

这个有具体数量达到多少会出问题吗?我们项目现在也遇到了。不知道是不是同类问题。