【prefab】无法关闭Uncaught (in promise) TypeError: Cannot set property 'fileId' of null

  • Creator 版本: 2.4.14

  • 目标平台: ALL

  • 重现方式:

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统: window11

  • 重现概率: 100%

在我电脑的项目出现了问题,预设打开后无法关闭。
经过检查发现是prefab文件有问题。其中一个预设能正常打开关闭。prefab信息结构大致如下:
[
{
type”: “cc.Prefab”,
“_name”: “”,
“_objFlags”: 0,
“_native”: “”,
“data”: {
id”: 1
},
“optimizationPolicy”: 0,
“asyncLoadAssets”: false,
“readonly”: false
},
其余的prefab能正常打开,但是不能关闭。结构如下:[{“type”:“cc.Prefab”,“uuid”:“8b8b1657-822c-49f4-8595-9deed44eb159”,"_super":null,"_name":“agreement”,"_objFlags":0,"_native":"",“data”:{“type”:“cc.Node”,“id”:1},“optimizationPolicy”:0,“asyncLoadAssets”:false,“readonly”:false,“loaded”:true,"_nativeUrl":"","_ref":4,"_createFunction":null,"_instantiatedTimes":0,“onLoadInvoked”:true,“id”:0},{“type”:“cc.Node”,“id”:1,"
发现不能打开的预设中没有fileId字段。同事电脑都能正常打开和关闭,其中prefab的信息结构和第一个一样。

最重要的是,项目能正常运行,但是每次查看prefab和想编辑,就会出现引擎卡死,只有强制杀掉进程。之前也偶尔遇到这种情况,这次实在受不了了。请问如何解决?

引擎面板报错信息如下:
Uncaught (in promise) TypeError: Cannot set property ‘fileId’ of null
at A (D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\utils\prefab.ccc:1)
at D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\utils\prefab.ccc:1
at I (D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\utils\prefab.ccc:1)
at processTicksAndRejections (internal/process/task_queues.js:93)
at async Object.confirmPrefabSynced (D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\utils\prefab.ccc:1)
at async Object.confirmEditingPrefabSynced (D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\utils\prefab.ccc:1)
at async Object.run (D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\edit-mode\index.ccc:1)
A @ D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\utils\prefab.ccc:1
(anonymous) @ D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\utils\prefab.ccc:1
I @ D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\utils\prefab.ccc:1
processTicksAndRejections @ internal/process/task_queues.js:93
async function (async)
run @ D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\edit-mode\index.ccc:1
(anonymous) @ D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\editor\page\scene-utils\lib\tasks.ccc:1
(anonymous) @ D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\node_modules\async\dist\async.js:3205
process @ D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\node_modules\async\dist\async.js:1431
(anonymous) @ D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\node_modules\async\dist\async.js:1289
(anonymous) @ D:\cocos-dashboard-editors\Creator\2.4.14\resources\app.asar\node_modules\async\dist\async.js:73
processImmediate @ internal/timers.js:461

再补充一点,场景文件都能正常打开和关闭。

image
找到临时解决办法了,打开预设后,只要点一次保存,在关闭就能正常关闭。
如果不点保存,就点关闭,就会卡死!
点击保存后貌似会触发格式化,就可以正常关闭了。