3.8 命令行构建后运行时报错,面板构建正常,并且发现用构建面板和命令行构建的assets不一样

  • Creator 版本:3.8.1

  • 目标平台:Android

  • 重现方式:

用构建发布面板进行正常构建,保留生成的assets文件夹,然后导出构建配置为 build-config/dev_android.json
再用命令行进行构建 C:\ProgramData\cocos\editors\Creator\3.8.1\CocosCreator.exe --project ./ --build “configPath=build-config/dev_android.json;stage=build”

对比2次生成的assets文件夹,会有一些文件不一样,比如:
某个bundle下的cc.config.json
image

构建面板构建出来的assets经过AS打包成APK,可以正常运行,没有报错
命令行构建出来的assets经过AS打包会出现部分prefab报错,

2023-12-05 00:06:13.082 26376-26434 Cocos dev.sunray.xzkl E 00:06:13 [ERROR]: JS: The asset a9f47113-e36b-4fca-bd69-e72eb37f661b is invalid for some reason, detail message: Cannot read property ‘__prefab’ of null, stack: TypeError: Cannot read property ‘__prefab’ of null
at SR (src/cocos-js/cc.js:1:508323)
at xR (src/cocos-js/cc.js:1:510777)
at src/cocos-js/cc.js:1:511076
at Array.forEach ()
at OR (src/cocos-js/cc.js:1:511063)
at t.onLoaded (src/cocos-js/cc.js:1:527660)
at _.onComplete (src/cocos-js/cc.js:1:555644) at _.dispatch (src/cocos-js/cc.js:1:306622)
at src/cocos-js/cc.js:1:305263
at src/cocos-js/cc.js:1:553596
2023-12-05 00:06:13.157 26376-26434 Cocos dev.sunray.xzkl E 00:06:13 [ERROR]: JS: Error 3817, please go to https://github.com/cocos-creator/engine/blob/develop/EngineErrorMap.md#3817 to see details. Arguments: LeftSlots, 2
2023-12-05 00:06:13.157 26376-26434 Cocos dev.sunray.xzkl D 00:06:13 [DEBUG]: JS: Corrupted component value: null
2023-12-05 00:06:13.158 26376-26434 Cocos dev.sunray.xzkl E 00:06:13 [ERROR]: JS: Error 3817, please go to https://github.com/cocos-creator/engine/blob/develop/EngineErrorMap.md#3817 to see details. Arguments: BaoXiang, 3
2023-12-05 00:06:13.158 26376-26434 Cocos dev.sunray.xzkl D 00:06:13 [DEBUG]: JS: Corrupted component value: null
2023-12-05 00:06:13.158 26376-26434 Cocos dev.sunray.xzkl E 00:06:13 [ERROR]: JS: Error 3817, please go to https://github.com/cocos-creator/engine/blob/develop/EngineErrorMap.md#3817 to see details. Arguments: BaoXiang, 3
2023-12-05 00:06:13.158 26376-26434 Cocos dev.sunray.xzkl D 00:06:13 [DEBUG]: JS: Corrupted component value: null
2023-12-05 00:06:13.158 26376-26434 Cocos dev.sunray.xzkl E 00:06:13 [ERROR]: JS: Error 3817, please go to https://github.com/cocos-creator/engine/blob/develop/EngineErrorMap.md#3817 to see details. Arguments: playerSlot, 3
2023-12-05 00:06:13.158 26376-26434 Cocos dev.sunray.xzkl D 00:06:13 [DEBUG]: JS: Corrupted component value: null
2023-12-05 00:06:13.159 26376-26434 Cocos dev.sunray.xzkl E 00:06:13 [ERROR]: JS: Error 3817, please go to https://github.com/cocos-creator/engine/blob/develop/EngineErrorMap.md#3817 to see details. Arguments: BaseAttrGroup, 2
2023-12-05 00:06:13.159 26376-26434 Cocos dev.sunray.xzkl D 00:06:13 [DEBUG]: JS: Corrupted component value: null
2023-12-05 00:06:13.159 26376-26434 Cocos dev.sunray.xzkl E 00:06:13 [ERROR]: JS: Error 3817, please go to https://github.com/cocos-creator/engine/blob/develop/EngineErrorMap.md#3817 to see details. Arguments: BattleAttrMap, 2
2023-12-05 00:06:13.159 26376-26434 Cocos dev.sunray.xzkl D 00:06:13 [DEBUG]: JS: Corrupted component value: null
2023-12-05 00:06:13.161 26376-26434 Cocos dev.sunray.xzkl E 00:06:13 [ERROR]: JS: Error 3817, please go to https://github.com/cocos-creator/engine/blob/develop/EngineErrorMap.md#3817 to see details. Arguments: MoneyBar, 1
2023-12-05 00:06:13.161 26376-26434 Cocos dev.sunray.xzkl D 00:06:13 [DEBUG]: JS: Corrupted component value: null

1赞

就你截图来看,两次的不一样主要在于 json 分组内容的顺序的差异,但是内容还是一致的。可以分别把这两个差异的 asset Bundle 包发给我看看吗?要看一下 a9f47113-e36b-4fca-bd69-e72eb37f661b 这个资源的序列化资源是否正常

可以,我怎么发给您

我已经私信您了

现在我无论命令行构建还是编辑器构建,最终AS打包出来的APK都有可能出现上述错误。不同的机器都试过,而且时好时坏,完全不知道下一次打包出来的是不是坏的,完全看脸

现在即使只改一个不相关资源文件,都可能造成上个版本是好的,而本次构建出来的脚本是坏的

mark 一下

你好,这个解决了么,我这边也遇到了,命令行构建的工程,有时候能跑,有时候不能跑,会出现一些奇怪的bundle引用报错,构建的web平台的, 然后比对了编辑器构建的,md5信息也不一样。
使用编辑器直接构建的从来没报错过

可复现的项目 demo 可以提供一下吗

抱歉,demo现在暂时没有办法提供,主要是测试用的几个小工程没出现这个问题,只有正式项目出现了,但是过于庞大而且基于保密协议无法提供

现在只能确定老项目 2.4.10没有这个问题,新项目3.8.1 出现此问题

我当前项目测试,大概率是缓存问题,多删几次library文件夹md5就稳定了

目前通过命令行无法解决,出错了就通过手动从编辑器里构建一次来解决

时隔2个月,现在引擎是3.8.1,命令行构建80%都会失败,只能通过面板来构建了

我最近也遇到了,
版本3.7.2 面板构建没有问题

命令行构建,在没有删除临时文件夹的时候报错
image

删除临时文件夹,命令行构建后
image

我现在也遇到了这个问题,似乎prefab中包含代码使用命令行构建就会出错

请问下兄弟你有解决这个问题吗

我也遇到 了 3.8.6
突然出现