Stencil manager does not support level bigger than %d in this device.

web-mobile.zip (1.2 MB)


这是报错信息,zip文件中有 cocos2d-js-min.js 文件和min.js.map文件

你这边提供资源是压缩的引擎源码,没什么帮助啊!
从日志上面看,应该是材质被释放或者丢失,你可以自定义引擎,在错误的代码位置做下判断,调试看看这个对象是什么,再进一步分析材质丢失的原因。


MaskAssembler fillBuffers 中 applyClearMask mask 的_clearMaterial 是null,打印节点名字是我使用的ScrollView的Mask,这个是什么原因,如何修改

我把mask 的 _clearMaterial 为null的屏蔽了也不行,接下来的代码会报错

确认下Mask是属于哪个节点的,在跟踪下对应节点的Mask变化,可以自己调试跟踪下堆栈,添加些日志。

mask是ScrollView的下的,原因是MaskAssembler fillBuffers的时候先报了的错误,mask的_clearMaterial 和_enableMaterial是null,在接下来的代码中调用applyStencil的时候,调用material.effect就会报这个错

你再往下挖,是不是节点的mask没有初始化?

在 Mask _activateMaterial中报错了,错误信息闪的太快,没有看到,之后就有了Error 9000的错误

,这个地方的mat是null

这个情况没遇到过,你打印下 getBuiltinMaterial 传入的name值,是不是第一次使用就报错了?确认模块设置是不是对的,全部勾选跑跑看。

getBuiltinMaterial 第一次获取 2d-sprite的时候报的错

模块设置全部勾选还是会出错

不可能,你界面都是显示,这个材质应该存在的,还是给个demo,复现的平台,复现方法,私信给我,我帮你看下。

是这个地方加载出错了,我发布的手机h5,在手机app的webview中显示的,在网络不好的时候,进入几十次会出现一次

我把这个地方暂时修改了,如果built 加载出错,就循环加载,这个问题就不会再出现了。

感谢反馈,这个问题已经提交处理了。

您好,这个有临时处理方案吗,我也遇到了,2.2.1版本

可以这样临时处理下或者升级到2.3.1