希望下次如果遇到,可以保留一下预制体,等有空的时候发给我们,我们会进行跟进排查修复
其实能不能做做一个优化。例如在一个预制体里面有一个模型。然后我删除了这模型资产,然后在预制只是把这个资产置空,而不是把这个模型Node 都MISS 掉,方便直接替换资产。
可能要考虑蛮多情况的,目前可能不会那么快去优化
3.8.7安卓运行会无限报这个错,web是没有任何问题的,应该是执行某个Tween动作引起的,无限报错导致游戏直接假死。
https://forum.cocos.org/t/topic/167097
跟上面这个帖子的报错是一样的。
E 13:23:20 [ERROR]: [ERROR] file C:/ProgramData/cocos/editors/Creator/3.8.7/resources/resources/3d/engine/native/cocos/application/CocosApplication.cpp: line 173
2025-06-09 13:23:20.069 4272-4290 Cocos com.gy.bountylegend.br E 13:23:20 [ERROR]:
Uncaught Exception:
- location : src/cocos-js/cc.js:1:344917:
System.register([],(function(t,e){“use strict”;return{execute:function(){function i(t,e,i,s){i&&Object.defineProperty(t,e,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(s):void 0})}function s(t,e,i,s,n){var r={};return Object.keys(s).forEach((function(t){r[t]=s[t]})),r.enumerable=!!r.enumerable,r.configurable=!!r.configurable,("value"in r||r.initializer)&&(r.writable=!0),r=i.slice().reverse().reduce((function(i,s){return s(t,e,i)||i}),r),n&&void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(n):void 0,r.initializer=void 0),void 0===r.initializer&&(Object.defineProperty(t,e,r),r=null),r}function n(t,e){const i=“undefined”==typeof window?global:window;return void 0===i[t]?i[t]=e:i[t]}t({BitMask:he,CCClass:mi,Enum:ue,Eventify:Bo,WorldNode3DToLocalNodeUI:aa,WorldNode3DToWorldNodeUI:ha,checkObsoleteInNamespace:function(t){return ot||(ot=“undefined”==typeof Proxy?{}:new Proxy(t,{get:(t,e,i)=>(rt(e),Reflect.get(t,e,i))})),ot},checkObsolete:function(t){for(let e of t)rt(e)},_resetDebugSetting:P,absMax:Xi,absMaxComponent:$i,applyMixins:u,approx:Oi,assert:O,assertID:j,assertIsNonNullable:function(){},assertIsTrue:function(){},assertsArrayIndex:le,bezier:Nc,bezierByTime:Hc,binarySearch:function(t,e){return Va(t,e,0)},binarySearchBy:function(t,e,i){let s=0,n=t.length-1,r=n>>>1;for(;s<=n;r=s+n>>>1){const o=t[r];if(i(o,e)<0)n=r-1;else{if(!(i(o,e)>0))return r;s=r+1}}return~s},binarySearchEpsilon:Va,ccenum:pe,clamp:Di,clamp01:Pi,color:Bs,computeRatioByType:WH,createDefaultPipeline:bJ,debug:D,debugID:L,deprecateModuleExportedName:nt,deserialize:Vg,enumerableProps:qi,equals:Ii,error:I,errorID:V,find:pT,flattenCodeArray:Wu,floatToHalf:Qi,formerlySerializedAs:yh,fragmentText:KC,getBaselineOffset:OC,getEnglishWordPartAtFirst:qC,getEnglishWordPartAtLast:YC,getError:W,getPathFromRoot:function(t,e){let i=t,s="";for(;null!==i&&i!==e;)s=`{i.name}/{s}`,i=i.parent;return s.slice(0,-1)},getSerializationMetadata:function(t){return t[gh]},getSymbolAt:jC,getSymbolCodeAt:GC,getSymbolLength:HC,getWorldTransformUntilRoot:xQ,halfToFloat:Zi,instantiate:Zz,inverseLerp:Wi,isCCClassOrFastDefined:gi,isCCObject:Ao,isDisplayStats:,isEnglishWordPartAtFirst:function(t){return kC.test(t)},isEnglishWordPartAtLast:function(t){return LC.test(t)},isUnicodeCJK:zC,isUnicodeSpace:UC,isValid:Co,lerp:Ri,loadWasmModuleSpine:dit,log:A,logID:B,mat4:vn,murmurhash2_32_gc:Uu,nextPow2:Hi,pingPong:Gi,pseudoRandom:zi,pseudoRandomRange:Ui,pseudoRandomRangeInt:Vi,quat:an,random:Bi,randomRange:Li,randomRangeInt:ki,rect:Hn,repeat:ji,safeMeasureText:VC,sampleAnimationCurve:GH,setDefaultLogTimes:function(t){t>0&&(tt=t)},setDisplayStats:X,setPropertyEnumType:ei,setPropertyEnumTypeOnAttrs:ii,setRandGenerator:Fi,shift:Vu,size:kn,toDegree:Ni,toRadian:Mi,tween:xst,tweenUtil:Est,v2:Bn,v3:Is,v4:_s,warn:C,warnID:z}),n(“CC_WECHAT”,!1),n(“CC_XIAOMI”,!1),n(“CC_ALIPAY”,!1),n(“CC_BYTEDANCE”,!1),n(“CC_OPPO”,!1),n(“CC_VIVO”,!1),n(“CC_HUAWEI”,!1),n(“CC_MIGU”,!1),n(“CC_HONOR”,!1),n(“CC_COCOS_RUNTIME”,!1),n(“CC_EDITOR”,!1),n(“CC_PREVIEW”,!1),n(“CC_BUILD”,!0),n(“CC_TEST”,!1),n(“CC_DEBUG”,!1),n(“CC_DEV”,!1),n(“CC_MINIGAME”,!1),n(“CC_RUNTIME_BASED”,!1),n(“CC_SUPPORT_JIT”,!0),n(“CC_JSB”,!0);const r=“undefined”==typeof window?global:window,o=t(“cclegacy”,{_global:r}),a=o;o.internal={};const h=t(“VERSION”,“3.8.7”);r.CocosEngine=a.ENGINE_VERSION=h,r.cc=a;const l=void 0!==globalThis.jsb&&void 0!==jsb.window?jsb.window:globalThis;r.ccwindow=l;function c(t,e){return t^(t^e)&-(t<e)}function u(t){let e,i;return e=(t>65535)<<4,i=((t>>>=e)>255)<<3,e|=i,i=((t>>>=i)>15)<<2,e|=i,i=((t>>>=i)>3)<<1,e|=i,e|(t>>>=i)>>1}function d(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24}function _(t){let e=32;return(t&=-t)&&e–,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}function p(t){return–t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t
2025-06-09 13:23:20.078 4272-4290 Cocos com.gy.bountylegend.br E 13:23:20 [ERROR]: JS: src/cocos-js/cc.js:1:344917:
System.register([],(function(t,e){“use strict”;return{execute:function(){function i(t,e,i,s){i&&Object.defineProperty(t,e,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(s):void 0})}function s(t,e,i,s,n){var r={};return Object.keys(s).forEach((function(t){r[t]=s[t]})),r.enumerable=!!r.enumerable,r.configurable=!!r.configurable,("value"in r||r.initializer)&&(r.writable=!0),r=i.slice().reverse().reduce((function(i,s){return s(t,e,i)||i}),r),n&&void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(n):void 0,r.initializer=void 0),void 0===r.initializer&&(Object.defineProperty(t,e,r),r=null),r}function n(t,e){const i=“undefined”==typeof window?global:window;return void 0===i[t]?i[t]=e:i[t]}t({BitMask:he,CCClass:mi,Enum:ue,Eventify:Bo,WorldNode3DToLocalNodeUI:aa,WorldNode3DToWorldNodeUI:ha,checkObsoleteInNamespace:function(t){return ot||(ot=“undefined”==typeof Proxy?{}:new Proxy(t,{get:(t,e,i)=>(rt(e),Reflect.get(t,e,i))})),ot},checkObsolete:function(t){for(let e of t)rt(e)},_resetDebugSetting:P,absMax:Xi,absMaxComponent:$i,applyMixins:u,approx:Oi,assert:O,assertID:j,assertIsNonNullable:function(){},assertIsTrue:function(){},assertsArrayIndex:le,bezier:Nc,bezierByTime:Hc,binarySearch:function(t,e){return Va(t,e,0)},binarySearchBy:function(t,e,i){let s=0,n=t.length-1,r=n>>>1;for(;s<=n;r=s+n>>>1){const o=t[r];if(i(o,e)<0)n=r-1;else{if(!(i(o,e)>0))return r;s=r+1}}return~s},binarySearchEpsilon:Va,ccenum:pe,clamp:Di,clamp01:Pi,color:Bs,computeRatioByType:WH,createDefaultPipeline:bJ,debug:D,debugID:L,deprecateModuleExportedName:nt,deserialize:Vg,enumerableProps:qi,equals:Ii,error:I,errorID:V,find:pT,flattenCodeArray:Wu,floatToHalf:Qi,formerlySerializedAs:yh,fragmentText:KC,getBaselineOffset:OC,getEnglishWordPartAtFirst:qC,getEnglishWordPartAtLast:YC,getError:W,getPathFromRoot:function(t,e){let i=t,s="";for(;null!==i&&i!==e;)s=`{i.name}/{s}`,i=i.parent;return s.slice(0,-1)},getSerializationMetadata:function(t){return t[gh]},getSymbolAt:jC,getSymbolCodeAt:GC,getSymbolLength:HC,getWorldTransformUntilRoot:xQ,halfToFloat:Zi,instantiate:Zz,inverseLerp:Wi,isCCClassOrFastDefined:gi,isCCObject:Ao,isDisplayStats:,isEnglishWordPartAtFirst:function(t){return kC.test(t)},isEnglishWordPartAtLast:function(t){return LC.test(t)},isUnicodeCJK:zC,isUnicodeSpace:UC,isValid:Co,lerp:Ri,loadWasmModuleSpine:dit,log:A,logID:B,mat4:vn,murmurhash2_32_gc:Uu,nextPow2:Hi,pingPong:Gi,pseudoRandom:zi,pseudoRandomRange:Ui,pseudoRandomRangeInt:Vi,quat:an,random:Bi,randomRange:Li,randomRangeInt:ki,rect:Hn,repeat:ji,safeMeasureText:VC,sampleAnimationCurve:GH,setDefaultLogTimes:function(t){t>0&&(tt=t)},setDisplayStats:X,setPropertyEnumType:ei,setPropertyEnumTypeOnAttrs:ii,setRandGenerator:Fi,shift:Vu,size:kn,toDegree:Ni,toRadian:Mi,tween:xst,tweenUtil:Est,v2:Bn,v3:Is,v4:_s,warn:C,warnID:z}),n(“CC_WECHAT”,!1),n(“CC_XIAOMI”,!1),n(“CC_ALIPAY”,!1),n(“CC_BYTEDANCE”,!1),n(“CC_OPPO”,!1),n(“CC_VIVO”,!1),n(“CC_HUAWEI”,!1),n(“CC_MIGU”,!1),n(“CC_HONOR”,!1),n(“CC_COCOS_RUNTIME”,!1),n(“CC_EDITOR”,!1),n(“CC_PREVIEW”,!1),n(“CC_BUILD”,!0),n(“CC_TEST”,!1),n(“CC_DEBUG”,!1),n(“CC_DEV”,!1),n(“CC_MINIGAME”,!1),n(“CC_RUNTIME_BASED”,!1),n(“CC_SUPPORT_JIT”,!0),n(“CC_JSB”,!0);const r=“undefined”==typeof window?global:window,o=t(“cclegacy”,{_global:r}),a=o;o.internal={};const h=t(“VERSION”,“3.8.7”);r.CocosEngine=a.ENGINE_VERSION=h,r.cc=a;const l=void 0!==globalThis.jsb&&void 0!==jsb.window?jsb.window:globalThis;r.ccwindow=l;function c(t,e){return t^(t^e)&-(t<e)}function u(t){let e,i;return e=(t>65535)<<4,i=((t>>>=e)>255)<<3,e|=i,i=((t>>>=i)>15)<<2,e|=i,i=((t>>>=i)>3)<<1,e|=i,e|(t>>>=i)>>1}function d(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24}function _(t){let e=32;return(t&=-t)&&e–,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}function p(t){return–t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,1+(t|=t>>>16)}const m=new A
2025-06-09 13:23:20.085 4272-4290 Cocos com.gy.bountylegend.br E 13:23:20 [ERROR]: [SE_ERROR] (C:/ProgramData/cocos/editors/Creator/3.8.7/resources/resources/3d/engine/native/cocos/bindings/jswrapper/v8/Object.cpp, 774): Invoking function (0xcc9fd180) failed!
如果是单纯的用脚本去设置预制体的数据,不会触发预制体的机制,可以在代码中通过 set-property 去触发。
setProperty(targetNode: Node, key: string, value: any, component: Component) {
// @ts-ignore
if (EDITOR) {
const index = targetNode.components.findIndex(com => com === component);
const path = `__comps__.${index}.${key}`;
// @ts-ignore
Editor.Message.request('scene', 'set-property', {
uuid: targetNode.uuid,
path: path,
dump: {
value,
},
});
}
}
感谢感谢,这下解决了一大困扰 
好的,我反馈给相关人员
感谢反馈该问题已经修复了,可以等后续版本
能否给个pr链接,我自己改下引擎,等着用呢
感谢
这个问题没人处理吗?
已反馈相关人员
现在还存在的问题,应该是老版本也存在的吧?
这个根本问题是 middleWare 获取的buffer是连续的;按照addTimer顺序添加
batcher遍历是按照节点顺序遍历,导致本来在middleWare连续的buffer在合批的时候是不连续的。
绕过这个问题可以通过 removeChild的方式,然后重新addChild规避。



