creator 在build之后无法调起webgl

在报错的堆栈最底层 处修改代码:

        callInNextTick: function(t, e, i) {
            t && setTimeout((function() {
                t(e, i)
            }
            ), 0)
        }

修改为:

        callInNextTick: function(t, e, i) {
            t && setTimeout((function() {
                t(e, i)
            }
            ), 35)
        }

延迟35毫秒后 该报错消失 运行正常, 延迟数值 0-34 均无效 该数值约为两帧,请引擎组核查,此临时解决办法供其他人参考 如若无效,可根据设备帧率调整数值

3赞

非常感谢,这个问题在我这边的设备确实没能复现,根据你反馈的情况,我们会调查一下并考虑优化一下代码。

你好,请问你能否提供一下出现这个问题的测试机型给我们?

最近也遇到这个问题 errorMessage:Uncaught TypeError: Cannot read property ‘getParameter’ of nul lfile:cocos2d-js-min.3528d.js,line:1,message:806366,error:{}

最近做H5 的时候 也遇到了这个问题。 在某些手机上 会发生这个情况,进不去游戏。 但是有概率发生的,不一定能100%重现。好尴尬 请问有办法处理吗?

只能到html首页,游戏都卡住进不去。很影响用户体验

华为平板M5 偶尔出现

怀疑spine的根据是什么

我都没用spine,连这个模块都没勾选。 跟这个没关系

我用了,但是看到楼上说怀疑是spine。

引擎版本:2.2.2 版本,设备信息:
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 QBCore/4.0.1301.400 QQBrowser/9.0.2524.400 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2875.116 Safari/537.36 NetType/WIFI MicroMessenger/7.0.5 WindowsWechat

{“error”:“Uncaught TypeError: Cannot read property ‘getParameter’ of null”,“pos”:{“file”:"./game/2.1.01/cocos2d-js-min.js",“line1”:1,“line2”:931924},“reference”:“TypeError: Cannot read property ‘getParameter’ of null”}

这个问题居然还在 。_ 。

最终有解决方案吗? 2.4.3 也遇到

添加后,还是会报错,并没有解决

这个问题一直在,

这个问题目前还是没有解决是吗?

根据 web 标准,canvas 元素是无需初始化的,应该没有需要 setTimeout 的原因。
根据引擎的代码,我怀疑是由于引擎获取 canvasEL 失败导致的这个报错。

image

由于引擎的启动,现在会依赖脚本、资源的加载,所以有可能是你修改完 callInNextTick 之后(主要用在加载器),延迟了引擎初始化代码的执行,导致 canvas 元素已经成功创建,所以引擎可以通过 GameCanvas 正常获取。

请确认你是否有定制过 html,确保 <canvas> 声明在引擎脚本之前。

2赞

没有定制过 html
使用creator创建整个工程
的声明和调用都由creator构建(creator构建 canvas 声明在脚本之前吧?)
因为报错在callInNextTick,所以在callInNextTick中尝试进行了延迟处理
canvas 元素是无需初始化的,但重复进行getContext会返回null
是否存在重复初始化/清除初始化 的冲突导致偶现报错?(猜想)

可以尝试下这个处理

1赞