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

如题,打出安卓包后一运行游戏就黑屏,使用 Eclipse 跟日志,报了以下错误,


这是新版本导致的问题么
还有,CocosAnalytics 打出的错误日志会影响统计的使用吗
因为不管我是否有勾选集成Cocos数据统计,都会有 CocosAnalytics 的错误日志(游戏代码中没有调用到统计的接口)

请大佬指点迷津~~

1赞

补充一下,之前用的1.6.1版本,一切正常,换成1.7.0版本之后删掉1.6.1构建出来的build重新构建编译,然后就出现这个问题了

能不能到你的

看一下是具体哪行代码报的错误吗?

jsb_polyfill.js.zip (240.1 KB)
这是我的jsb_polyfill.js文件,请您看一下

我把jsb_polyfill.js文件上传啦

感觉应该是你代码问题,1.7 的 js 语法校验更严格了,你们代码里面有用什么写法吗?

那 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 中搜索 ;; 就差不多可以定位地方了