Failed to execute 'shaderSource' on 'WebGLRenderingContext'

2.0.9
h5
ios设备
应用内置webview

TypeError Failed to execute ‘shaderSource’ on ‘WebGLRenderingContext’: parameter 1 is not of type ‘WebGLShader’. TypeError: Failed to execute ‘shaderSource’ on ‘WebGLRenderingContext’: parameter 1 is not of type ‘WebGLShader’.
at ht (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:626762)
at at.202.at.link (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:626911)
at ve.202.ve.getProgram (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:689240)
at e.202.Oe._draw (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:696249)
at e.202.e._transparentStage (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:699093)
at e.202.Oe._render (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:694707)
at e.202.e.renderCamera (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:698813)
at e.202.e.render (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:698549)
at Object.render (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:568065)
at 27.cc.Director.mainLoop (https://osscdn.shangshou8.com/webgame/vfish/cocos2d-js-min.813a0.js:1:126946)

求解。

怀疑是spine动画有问题?

:sob:

老哥,遇到和你一样的错误。你找到原因了吗

我自己没遇到,统计用户报错信息比较多:
Uncaught TypeError: Failed to execute “shaderSource” on “WebGLRenderingContext”: parameter 1 is not of type “WebGLShader”.
cocos2d-js-min.9d375.js 的 1 行 579489列

我调试的时候就黑屏,出现这个错误
Failed to execute ‘shaderSource’ on ‘WebGLRenderingContext’: parameter 1 is not of type ‘WebGLShader’
浏览器直接说 WebGL死亡,需要重新加载。连spine动画都还没使用到。应该是引擎的问题。请开发大大速速解决。

不是spine的问题,我们没有用spine也会偶线这种问题(只在线上用户那里出现过),猜测是webgl的上下文丢失了导致的

我们项目也遇到这个问题了,不是100%报错,但是报错日志这种信息还不少,都是线上发生的,本地未发生过,求大神答疑解惑!!!

GPU 崩溃导致的。

根据 https://www.khronos.org/webgl/wiki/HandlingContextLost

这个问题引擎不太容易处理,建议你们在网页里加个监听,出错后刷新网页。

4赞

MARK

2.4.3 经常会崩溃
我写完代码 切换到 引擎软件后, 引擎软件的 控制台 里 就会 不停的显示

TypeError: Failed to execute ‘shaderSource’ on ‘WebGLRenderingContext’: parameter 1 is not of type ‘WebGLShader’.
at _createShader (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\gfx\program.js:203:6)
at Program.link (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\gfx\program.js:94:22)
at ProgramLib.getProgram (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\core\program-lib.js:275:26)
at ForwardRenderer._draw (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\core\base-renderer.js:344:32)
at ForwardRenderer._drawItems (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\renderers\forward-renderer.js:309:14)
at ForwardRenderer._opaqueStage (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\renderers\forward-renderer.js:342:10)
at ForwardRenderer._render (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\core\base-renderer.js:236:7)
at ForwardRenderer.render (D:\Creator\resources\engine\bin.cache\dev\cocos2d\renderer\renderers\forward-renderer.js:126:12)
at Function.RenderFlow.render (D:\Creator\resources\engine\bin.cache\dev\cocos2d\core\renderer\render-flow.js:286:12)
at Object.render (D:\Creator\resources\engine\bin.cache\dev\cocos2d\core\renderer\index.js:209:18)

1赞

兄弟解决了么

没有…

我这经常崩溃的项目 是个 使用了 jpg 图片的, 项目 每次打开以后 creator 内存占用 4个多G
而且这个项目 曾经 从2.43 降级 2.3x 又升级 2.43
不知道和以上问题有无关联…总之 我感觉是内存占用太多 导致的崩溃

我的其他项目 基本正常…

我用的win10 笔记本不知道是不是 有关

这个不是解决方案啊,
我用的2.4.3,也是经常出现这个报错,然后就要重启creator,体验非常差.
每次打开creator都占用4个G内存,然后编辑一会代码或者调试,就占有8个GQQ图片20201222115450 内存甚至更高.

用的intel核显吗?

我也是,每次这样只能重启

你好,目前没有方法解决这个问题。这是 webGL 自身的安全措施,当它认为 GPU 占用过高的时候,就会关闭一个或者更多的 webGL 网页。

一般不仅有这个报错,还会有这个警告:

"WARNING: Too many active WebGL contexts. Oldest context will be lost."

https://www.khronos.org/webgl/wiki/HandlingContextLost 文中的方式我也已经尝试,均不能报错解决问题。
如果使用网页刷新或者 restartContext 的方式,让网页重新获得有效的 webGL 绘图上下文,那么 webGL 也会让其它 webGL 网页的上下文关闭

:sob:不知道为啥GPU会占用过高 一打开项目GPU就从很低很低突然到100%了 :disappointed_relieved:

查了查猜测可能是图片分辨率太大了 目前缩小了之后没报错

我 这两天也遇到这个问题了,换了引擎版本一样,感觉是电脑问题,但是我电脑之前用哪个版本引擎都没问题,不知道您是怎么解决的?我现在只能重启

几年过去了,还是这样子哦,能有什么办法,重启了