关于使用1.7.0版本构建编译之后,游戏运行黑屏的问题

那 CocosAnalytics 的日志会有影响么

你可以试看看把日志去掉,看看是否是它引起的,看了一下这里还没运行到统计代码

这里提示有语法错误

好的,谢谢~

这个有什么办法定位到错误的地方吗,还是只能慢慢找,因为游戏一运行就崩溃,游戏代码里打的日志都出不来

你看看你们有没有用什么比较特殊写法的代码(es6 或者其他的)你确定了不是 CocosAnalytics 的问题了?

确定了,我新建了一个Hello World 项目测试,也会打出CocosAnalytics的红色日志

你好,我这边把项目里面的所有场景都删除,然后挂载一个空场景,空场景里面没有挂任何脚本,打包出来的apk仍然崩溃,报同样的错误,在线急等!拜谢!

也是这个错误吗?

因为就算你是空场景没挂脚本,它还是会去编译脚本的,最终我觉得还是你代码的问题,代码的写法应该比较好查吧,有没有人用了 es6 或者比较特殊的写法?

原因查到了

var analyseData = analysePai(remainingPai);
var Index = 0;
var Total = 0;

for(var i = 0;i<remainingPai.length;i++){

压缩后,会变成

o(s);
for (n = 0;; n < s.length; n++) {

是重复申明了 var i,触发了 uglifyjs 的一个 bug 导致的,改成 let 就好了。我们有空会跟进下,尽量避免用户再遇到同类问题。

大佬我问个问题。。。我用1.7打包以后,只有一台手机正常,其他都闪退,没有报js的错误,只有一个 ==>
CocosAnalytics checkAndUploadLog, database is not open!
CocosAnalytics Please init sdk first!
上传中…

@jare

1.8.1 会彻底修复这个问题~

1.8.1了,问题还是没修复啊

找了半天终于找到了,在src/project.js 中搜索 ;; 就差不多可以定位地方了

抱歉说错了,不是 1.8.1,是 1.8.2 或 1.9.0 修复~

1赞

现在具体怎么修复呢?

现在只能从代码编写的层面去避免:确保每个变量在每个方法里只会出现一次声明。或者尝试用 let 而不是用 var。

1.8.2 还未解决 大部分代码只要把var改成let就好了。有些代码 确实是声明了二次以上,就不好排查了。因为是脚本语言编辑器并不会报错。需要执行到的时候 才报错 这就留下了十分巨大的隐患。这个问题建议优先解决,因为大量的web工程师都是用var。并且有些人,习惯于用var多次声明。因为这是在语法上支持的。

当然这也不是你们的郭,你们只是引入了uglifyjs 这个插件。uglifyjs 并不由你们维护。

我用的就是1.8.1 但是还是出现这个问题

这个问题新版本解决没?