cocos2dx-JS v3.0Final版的坑-之一addEventListener

cocos2dx-JS v3.0 Final出来以后,正好遇到几个BUG已修复,就懒得动手再去改动JSB了,升级到最新的JS引擎版本和最新的COCO IDE V1.0.0.RC2。


开发工具和JS引擎版本:cocos ide r2 + COCOS2Dx-JS V3.0 Final

按照新的提供的API一切顺利,win32版本调试完成,切换Android真机debug调试完成(小坑:使用coco ide生成的工程自带的Android Runtime是无法运行成功的,必须重新生成Android的runtimes!!注意,必须重新生成,不能从JS引擎下的runtimes拷贝,否则你就进入到我的坑里了!!!-从JS引擎下拷贝这个是一个版主说的,我尝试了,然后精神上就被强奸了2天。。后面告诉你为什么),

最后生成APK的包。


结果看似一切顺利,安装到Android上运行。。。然后就。。。没有周末了。。


打开Android安装的apk后是黑屏。。。


开始进行问题排查,使用debug的时候发现有一个日志提示是无法找到微软雅黑字体,我想有可能是这个问题,好吧。。重构所有的字体为Android默认自带字体。。排查结果无效。。几个小时过去了。。(好吧,还在其中通过其他方式尝试过)。


后来采用终极模式,一行代码调试(修改一行代码,生成一次apk包,安装后看看是不是黑屏。。是很傻的方法,可是有更好的么??)


原因终于被找到。。

使用之前注意了一下本次的升级到v3.0的内容,其中有两项当时只是看了一眼,但没有特别注意(因为只是BUG修复嘛,也就是这个坑整整浪费了我2天时间)。

  1. Fixed an issue of ccui widgets' addEventListener that it doesn't accept function's target as parameter.

  2. [JSB] Refactored ccui's addEventListenerXXX to addEventListener to fit Web engine API.

    重构了CCUI的addEventListenerXXX to addEventListener。。。

因为最新版本的JS引擎的win32是不支持最新的addEventListener的(没试过我会乱讲?)!!,我又使用了上面COCO2dx社区的版主给的建议,从3.0引擎目录下拷贝的Android runtimes,

so....陷入无尽黑屏当中。。



总结一下解决方法把:


1、,建好工程以后,要重新builder Runtime(win32+Android),win32的我的没有builder成功,其他同学可以试试,通过逻辑判断如果win32成功,那么应该就不会有什么太大问题了。

2、不要使用ccui's addEventListenerXXX的方法,即便是在win32下无法运行也不要轻易的使用这些已经被说为bug fix的,如果已经使用最新的引擎,那么一切按照最新的api。




其实貌似现在想想问题还是很好解决的,,引以为戒。。。

希望不要再出现坑之XX了。。。






评论

© H先生 | Powered by LOFTER