cocos2dx在小米note上又出奇葩问题

我用的版本是3.5。在eclipse中debug安装,没问题,应用宝上安装,没问题。但是把apk包拷贝到小米note硬盘上再安装,第一次进入游戏,切到后台,再切回来,报的错误见后面的图片。也就是
Application::Application()
{
CCAssert(! sm_pSharedApplication, “”); //此处异常
sm_pSharedApplication = this;
}

跟踪代码,发现是AppActivity的onCreate被再次触发,而sm_pSharedApplication还没有被清理。
这个问题只在小米note上,硬盘安装后,第一次启动出现,以后启动就正常了,还没在别的情况下碰到。
之前还碰到在小米note上字渲染失败的bug,小米的问题真是多:6:
本论坛中有引擎的开发人员吗?回个话啊。

1赞

刚做了进一步的测试,发现最新的cocos2dx3.7.1,也有这个问题,而且这个问题不是小米独有的,htc也有这个问题。
重现方式如下:硬盘上安装完应用后,不要切界面,直接点击打开,启动游戏,转到后台,回到前台就出问题。
在桌面上点击图标启动游戏不会出这个问题。
我怀疑问题与Activity的切换有关系:9:

如果你也用cocos2dx开发,也测试一下这个问题,估计稳稳的。

@gyk_gyk这个问题最后怎么解决的

这个问题有部分原因是android的锅,第一次安装启动,然后切到后台再切回来就出现,因为onCreate会被重新调用,解决方案http://blog.csdn.net/u011389577/article/details/51832094。
不过即使改了这里,还是有问题,如果场景中有ttf字体,会莫名其妙的全变糊,这次的锅是Cocos2dxGLSurfaceView和Cocos2dxActivity的onResume和onPause导致的,在Cocos2dxActivity中发现引擎手动调用了Cocos2dxGLSurfaceView的onResume和onPause,其实这里面只是想让GLSurfaceView切到后台的时候暂停渲染,切回来的时候连续渲染。
我的解决方案是把Cocos2dxGLSurfaceView的onResume和onPause换个名字,改成onEnterBackground和onEnterForeground,并且不要调用不要调用不要调用super的onResume和onPause,然后再到Cocos2dxActivity的onResume和onPause中调用Cocos2dxGLSurfaceView的onEnterBackground和onEnterForeground。

1赞

修改之后还是会出现字体变糊问题