cocos2d-x的android黑屏问题

来源:互联网 发布:上传数据到ncbi 编辑:程序博客网 时间:2024/04/19 21:06

姜老师的豆知识—cocos2d-x的2.1.3版本android黑屏问题   

当我使用cocos2d-x转android时,

出现了一个小问题,

安装到android手机里,点击HOME键,然后再回到游戏中,发生黑屏。

我开始查找网上是否有其他人也遇到过这样的问题。

在网上看到的解决方法,2.1.3版本里,已经如此做了。

我开始思考是否是因为图片加载过多,造成的内存问题。

结果,即使只是加载了一张小图,还是会出现黑屏问题。

用了6,7台android机器测试,也使用android模拟器测试,

并不是所有机器都有黑屏的问题,只有一台 HTC ,型号是 HTC Desire HD A9191的手机,出现了这样的问题。

我新建了一个HelloWorld项目,安装到了这台机器上,

结果,还是出现了 黑屏问题。

既然问题是由按了HOME键返回,然后再次进入游戏中发生的。

那么,在这个过程中,调用了程序的哪些函数呢?

我找到了这两个函数。

void AppDelegate::applicationDidEnterBackground()
{
   CCDirector::sharedDirector()->pause();
 }
void AppDelegate::applicationWillEnterForeground()
{
   CCDirector::sharedDirector()->resume();
 }

我注释了 pause和resume。

void AppDelegate::applicationDidEnterBackground()
{
  // CCDirector::sharedDirector()->pause();
 }
void AppDelegate::applicationWillEnterForeground()
{
//   CCDirector::sharedDirector()->resume();
 }


之后,再打成apk包,装入那台有问题的HTC手机,点HOME键返回,再进入,正常了。

之后,我又用同样的apk包,装入其他手机,也没有出现HOME键返回黑屏问题。

本以为问题解决了。
可是,没有。
接下来,当游戏添加了一些功能再次打包时,再次出现了点击HOME键返回黑屏的问题。
这一次,好多手机都出现了同样的问题。
这个问题再次出现,我开始测试各种可能的原因。
结果,发现了一个现象,
在安装APK时,最后 会出现  一个  “打开” 和一个 “安装”。
这时,如果点击“安装”, 点击 HOME键返回,没问题,
如果点击“打开”, 点击 HOME键返回, 黑屏。
测试多次后,确定了其必然性。
于是开始继续百度,结果,百度到了一个帖子,
下面的回帖中,有一个人,提出,有可能是 android:lanuchMode问题,之后继续百度,百度到了 一个问题,是问 四种 lanuchMode 模式的,

下面是回答的部分内容
---------------------------------------------------------------------------------------------------------------

在多Activity开发中,有可能是自己应用间的activity 跳转,或者夹带其他应用的可复用activity。可能会希望跳转到原来某个activity实例,而非产生多个重复的activity。我们可借助 activity 四种启动模式来实现不同的需求:

standard 默认模式 --------- 来了intent,每次都创建新的实例。

singleTop -------- 来了intent, 每次都创建新的实例,仅一个例外:当栈顶的activity 恰恰就是该

activity的实例(即需要创建的实例)时,不再创建新实例。这解决了栈顶复用问题,想一想,你按两次back键,退出的都是同一个activity,这感觉肯定不爽。

singleTask ---------- 来了intent后,检查栈中是否存在该activity的实例,如果存在就把intent发送给它,否则就创建一个新的该activity的实例,放入 一个新的task栈的栈底。肯定位于一个task的栈底,而且栈中只能有它一个该activity实例,但允许其他activity加入该栈。解决了在一 个task中共享一个activity。

singleInstance ----------- 肯定位于一个task的栈底, 并且是该栈唯一的activity。解决了多个task共享一个activity。


---------------------------------------------------------------------------------------------------------------

这一次,我打开eclipse,

找到AndroidManifest.xml文件,

打开,添加了lanuchMode

<activity            中间部分略                  android:launchMode="singleInstance">

这一次,打包,安装到手机中,

再次点击 “打开”,按HOME键返回,没有再出现黑屏的问题。

这个问题的解决,先后耗时大约两个工作日,

期间,一步步的解决,遇到的问题先后三次以为在网上找到了真正的解决方案。

实际上,如果碰到了这个问题,然后也知道为什么会出现这个问题,

总耗时不会超过5分钟就能解决这个小问题。

如果遇到跟我一样问题,不妨试验一下这种解决方式。希望对你有点帮助。
[ 此帖被jarod姜赫在2013-10-30 15:48重新编辑 ]
0 0
原创粉丝点击