Creator1.6在安卓模拟器下有闪退的BUG!

这个闪退是执行纯JS运算时发生的,应该是属于JS引擎的BUG。重现步骤如下:

  1. 下载MUMU模拟器,其他很多模拟器也会。
  2. 用附件的Demo工程编译一个安卓包,安装到MUMU,然后执行程序,点【崩溃测试】按钮,程序真的闪退了。

NewProject.zip (579.3 KB)

执行代码就是下面几句:

var key = "hello"
for (var i = 0; i < 10000; ++i) {
	key.charCodeAt(i % key.length);
}

我发现这个问题是因为下周就要提供测试了,在真机上测试没有问题,但安卓有很多玩家都在模拟器下玩,所以就用模拟器测试,没想模拟器运行起来各种闪退。我把上面的代码删除掉了,还会在其他地方闪退。我只能归结为JS引擎有BUG。另外以前的1.5x在模拟器下是可以正常跑的。

我发现还有一个问题是用jsbcc编译字节码时,如果编译很多JS脚本,JSBCC也会有机率崩溃,这个之前已经和引擎人员反馈了,现在还是会有机率崩溃。所以目前这个SM52的版本会不会是一个不大很稳定的版本呢。

我上mozilla官网看,52是一个Future release呀,45才是Current release,会不会引擎版本使用得太超前了,用到一个不太稳定的版本呢?

@panda,这个问题请一定帮我分析一下,下周要给渠道内测了。。。

占楼关注

我们确实没有把第三方安卓模拟器纳入测试范围,模拟器种类有点多,而且实现质量参差不齐,支持起来的成本非常高。

关于 Spidermonkey 版本的问题,v52 就是 Firefox v52 所使用的版本,所以其实是稳定的,否则不会放在发布版本的 firefox 中。Spidermonkey 的 standalone release 一直都慢很多拍,这个不用担心。

调试找到原因了,等 @colinsusie 总结下

上来还是先感谢@panda和@jare,半夜三更还在帮我分析问题,这个问题确定原因了:

#解决办法是构建的时候加上x86的ABI,模拟器对arm构架支持得不好,如果有x86的ABI,模拟器会选择X86。

我突然觉得@wangzhe大大说得还挺有道理的,下次还有这种问题,我一定给你们钱:stuck_out_tongue_closed_eyes:

1赞