我使用Cocos2D构建了我的第一个游戏。它在模拟器上运行良好。但是当它在真正的iPhone上运行时,它会崩溃。我不知道为什么。以为这是内存泄漏,所以我试图检测,但没有发现泄漏。我试图增加和降低帧速率,两者都没有成功。有经验的人请帮帮我。我现在真的很紧张。如果有人遇到同样的问题,请与我分享您的意见。
谢天谢地。
答案 0 :(得分:1)
我遇到了类似的问题(我也使用Cocos,但我认为这不是Cocos特有的)。最好的办法是插入iPhone并在崩溃时观察堆栈跟踪(或在事后检索堆栈跟踪)
这件事发生在我身上,因为iPhone和模拟器之间的资源不同步;换句话说,一些资源如何可用于模拟器(例如:图像),但这些相同的资源由于某种原因未被传输到iPhone。有时,如果我在模拟器上运行“干净”,我会观察到同样的问题。
调试这些类型的问题非常令人沮丧,但你会习惯它。
答案 1 :(得分:0)
抱歉,您需要指定更多详细信息。怎么崩溃?错误日志说什么?你可能会关注的一件事是你的游戏消耗的内存量。如果它在实际设备上使用超过64 MB,操作系统很可能只是终止它。另一方面,在模拟器中,您的应用可能会使用更多内存而不会出现问题。
答案 2 :(得分:0)
我同意Dominic的观点 - 我们肯定需要更多信息才能帮助您 - 您是从控制台获得输出还是从调试器获得堆栈?
此外,虽然内存泄漏是一件坏事,但他们很少直接导致崩溃。它们会增加你的应用程序使用的内存量,所以如果你的内存密集,那么你可能会遇到问题,但它们不是我试图调试它的第一个地方。
尝试在Instruments中运行应用程序并观看内存使用情况图表 - 然后您不仅可以看到应用程序使用的总数,还可以了解应用程序的哪些部分使用最多,并且可以集中精力减少它。
萨姆
答案 3 :(得分:0)
我发现Instruments和NSZombieEnabled等工具对于追踪这些问题非常有帮助。
答案 4 :(得分:0)
如果没有更多信息,我会尝试以下步骤:
从设备和模拟器中删除应用程序(使用“点按并保持”技术使图标微动)并重新安装。有时用户默认设置(或缺少设置)会导致崩溃,除非您删除并重新运行应用程序,否则这些设置不会被删除。
还可以在模拟器中尝试“模拟内存警告”选项,看看是否会使其崩溃。