游戏在真正的iPhone上崩溃但模拟器?记忆问题?

时间:2009-12-04 09:42:45

标签: iphone objective-c

我使用Cocos2D构建了我的第一个游戏。它在模拟器上运行良好。但是当它在真正的iPhone上运行时,它会崩溃。我不知道为什么。以为这是内存泄漏,所以我试图检测,但没有发现泄漏。我试图增加和降低帧速率,两者都没有成功。有经验的人请帮帮我。我现在真的很紧张。如果有人遇到同样的问题,请与我分享您的意见。

谢天谢地。

5 个答案:

答案 0 :(得分:1)

我遇到了类似的问题(我也使用Cocos,但我认为这不是Cocos特有的)。最好的办法是插入iPhone并在崩溃时观察堆栈跟踪(或在事后检索堆栈跟踪)

这件事发生在我身上,因为iPhone和模拟器之间的资源不同步;换句话说,一些资源如何可用于模拟器(例如:图像),但这些相同的资源由于某种原因未被传输到iPhone。有时,如果我在模拟器上运行“干净”,我会观察到同样的问题。

调试这些类型的问题非常令人沮丧,但你会习惯它。

答案 1 :(得分:0)

抱歉,您需要指定更多详细信息。怎么崩溃?错误日志说什么?你可能会关注的一件事是你的游戏消耗的内存量。如果它在实际设备上使用超过64 MB,操作系统很可能只是终止它。另一方面,在模拟器中,您的应用可能会使用更多内存而不会出现问题。

答案 2 :(得分:0)

我同意Dominic的观点 - 我们肯定需要更多信息才能帮助您 - 您是从控制台获得输出还是从调试器获得堆栈?

此外,虽然内存泄漏是一件坏事,但他们很少直接导致崩溃。它们会增加你的应用程序使用的内存量,所以如果你的内存密集,那么你可能会遇到问题,但它们不是我试图调试它的第一个地方。

尝试在Instruments中运行应用程序并观看内存使用情况图表 - 然后您不仅可以看到应用程序使用的总数,还可以了解应用程序的哪些部分使用最多,并且可以集中精力减少它。

萨姆

答案 3 :(得分:0)

我发现InstrumentsNSZombieEnabled等工具对于追踪这些问题非常有帮助。

答案 4 :(得分:0)

如果没有更多信息,我会尝试以下步骤:

从设备和模拟器中删除应用程序(使用“点按并保持”技术使图标微动)并重新安装。有时用户默认设置(或缺少设置)会导致崩溃,除非您删除并重新运行应用程序,否则这些设置不会被删除。

还可以在模拟器中尝试“模拟内存警告”选项,看看是否会使其崩溃。