2011-11-07 120 views
4

我的应用程序在Xcode 4.2使用的iOS5和的iOS4.3 iPhone模拟器崩溃,堆栈跟踪示出了在[FlurryAPI stopBackgroundTask]方法BAD_ACCESS信号。乱舞API崩溃iPhone模拟器

虽然在iOS4.3模拟器中,应用程序仅在将应用程序发送到后台时崩溃,但在iOS5中总是崩溃。我正在附加调试导航器的图片,以显示BAD_ACCESS正在发生的线程。

在另一方面的应用程序工作正常使用真实的设备。

的任何想法我怎么能得到什么是怎么回事,为什么发生这种情况的更多信息?

enter image description here

+1

在升级到最新的Flurry库后(并用FlurryAnalytics替换旧的FlurryAPI调用...) – avocade

+1

这是Flurry为其代理创建的线程中发生的事情[FlurryAnalytics startSession:FLURRYAPIKEY]在我们的代码中。仍然不知道如何检查导致问题的电话来自哪里。 – yeforriak

+0

同样的问题在这里,找不到修复程序。我更新到Flurry 3.0.4,并仍然在模拟器中出现问题,包括4.3和5.0。 – DaGaMs

回答

7

我已通过添加解决此问题的工作下,以didFinishLaunchingWithOptions

#if TARGET_IPHONE_SIMULATOR 
     [FlurryAnalytics setSessionReportsOnPauseEnabled:NO]; 
#endif 
+0

谢谢你!这对我有效。 – ruyamonis346

1

它看起来像你有一个僵尸 - 你有你使用的代码,你已经发布后的情况。保留计数达到零,因此系统解除分配并重新使用内存,然后通过原始参考进行更改。现在你对同一个内存有两个不同的引用,每个引用都期望有一个不同的对象存在。在你的情况下,其中一个参考文件是乱七八糟的。

您的设备/模拟器差异的原因是两种架构使用不同的内存分配方案 - 模拟器似乎非常积极地重新使用内存。

启用NSZombie并在调试运行。如果你幸运的话,它会给你在释放后使用的对象和点。启动NSZombie:菜单'产品','编辑方案','运行'页面,'诊断'标签,勾选'启用僵尸对象'。

+0

感谢您的答案,但启用NSZombies不给我任何额外的信息:( – yeforriak

2

乱舞Analytics不超过主线程运行其他。它可能会在后台线程上崩溃。