关于Material的effectAssets为空的问题

  • Creator 版本:2.1.2.beta3

  • 目标平台: ANDROID

  • 详细报错信息,包含调用堆栈:
    ERROR: Uncaught TypeError: Cannot read property ‘getDefaultTechnique’ of null, location: src/cocos2d-jsb.js:0:0
    STACK:
    [0]_updateMaterialBlendFunc@src/cocos2d-jsb.js:31017
    [1]setMaterial@src/cocos2d-jsb.js:31008
    [2]222.r._switchGrayMaterial@src/cocos2d-jsb.js:31098
    [3]_updateDisabledState@src/cocos2d-jsb.js:12186
    [4]_updateState@src/cocos2d-jsb.js:12126
    [5]__preload@src/cocos2d-jsb.js:11908
    [6]anonymous@(no filename):3
    [7]invoke@src/cocos2d-jsb.js:21320
    [8]activateNode@src/cocos2d-jsb.js:21402
    [9]_activate@src/cocos2d-jsb.js:8226
    [10]runSceneImmediate@src/cocos2d-jsb.js:6291
    [11]anonymous@src/cocos2d-jsb.js:6371
    [12]anonymous@src/cocos2d-jsb.js:21488
    [13]anonymous@src/cocos2d-jsb.js:19605
    [14]anonymous@src/cocos2d-jsb.js:25377
    [15]fireTimeout@jsb-adapter/jsb-builtin.js:2033
    [16]tick@jsb-adapter/jsb-builtin.js:1995

  • 重现方式:加载使用到Material的预制件再卸载掉,再去加载使用就会出

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

  • 手机型号 :华为CL00

  • 手机浏览器 :

  • 编辑器操作系统 :MAC

  • 编辑器之前是否有其它报错 :无

  • 出现概率:100%

  • 额外线索:

当加载预制件时加载到了Material,使用后卸载掉。下次再加载的时候里面的effectAssets就是空的了。

同一个问题

2.1.2 的正式版吗?我们验证一下

没有复现这个问题,提供下你们加载释放的复现DEMO工程,谢谢!

//加载
cc.loader.loadRes(resurl, (err, prefab)=>{
// ComponentsUtils.unblock();
if(err){
// ComponentsUtils.showTips(err.message);
if(callBack){
callBack(null);
}
}
else{
_prefabs[resurl].res = prefab;
_prefabs[resurl].isload = true;
if(callBack){
callBack(prefab);
}
}
});

//释放
var deps = cc.loader.getDependsRecursively(_prefabs[resurl].res);
cc.loader.release(deps);

再次加载显示就会出现上面的问题

我这边也有这个问题

我也遇到了
Cannot read property ‘getDefaultTechnique’ of null
多个场景用了同一个material
第一个场景加载后,再到第二个场景,会卡住

重现方式,场景A利用getDependsRecursively 释放资源,builtin-2d-sprite 也被释放了。然后切换到场景B,精灵C默认active=false,当手动设为true,就会报这个错。
姐妹问题