Flurry 分析在 Windows Phone 7 中崩溃

Posted

技术标签:

【中文标题】Flurry 分析在 Windows Phone 7 中崩溃【英文标题】:Flurry analytics crashing with Windows Phone 7 【发布时间】:2011-03-01 23:15:38 【问题描述】:

我已将 Flurry (http://www.flurry.com/) 集成到我的 phone 7 应用程序中。唯一需要的代码是应用程序启动中的这一行

FlurryWP7SDK.Api.StartSession(ApiKeyValue);

但是,一旦命中该行,应用程序就会崩溃并出现 KeyNotFoundException。堆栈跟踪包括在下面。它似乎正在查询隔离存储设置,并在密钥不存在时失败。

有没有人遇到过这个错误,甚至成功地将flurry集成到Phone 7应用程序中?

at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(String key)
at System.IO.IsolatedStorage.IsolatedStorageSettings.get_Item(String key)
at A.ca98fb38190f0d5cad84c67a779d17229.c204dba68825403c905efd7bfd067b17b(String ce0360de492f1f363775feaf6d6a8ced5, Object c8d4be677f7ee63f6756e13f285072523)
at A.c3f1105d518a239d73e2236200494de25.set_cfca54db015a16ab23de44b4d5c65e9a3(String c8d4be677f7ee63f6756e13f285072523)
at FlurryWP7SDK.Api.StartSession(String apiKey)
at AppName.App.Application_Launching(Object sender, LaunchingEventArgs e)
at Microsoft.Phone.Shell.PhoneApplicationService.FireLaunching()
at Microsoft.Phone.Execution.NativeEmInterop.FireOnLaunching()

编辑

在与 Flurry 支持讨论之后,似乎 KeyNotFoundException 被 Flurry 代码捕获。但是,如果您的调试器设置在抛出异常时中断,则无论如何您都将中断调试器。然后继续执行将起作用,因为异常已被 Flurry 捕获并处理。

我无法验证这是否是解决方案,因为我不再有权访问指示错误的开发环境,但它似乎是一个可能的解决方案。

【问题讨论】:

我现在也有这个例外。 FlurryAPI 在 2-3 天前工作。我没有改变我在代码中使用 Flurry 的方式,但不知何故,我遇到了这个非常烦人的异常。 【参考方案1】:

我为 Flurry 工作。我们在 Windows 7 平台上进行了许多成功的部署。您和 Buju 可能遇到了一个我们以前没有注意到的新问题。请发送电子邮件至 winmosupport@flurry.com,因为诊断可能涉及讨论帐户的具体细节。一旦我们确定了根本原因,我们就可以发回这个帖子,这样社区就可以从我们的调查中受益。感谢您与 Flurry 合作。

编辑

我只是想跟进 Mac 的评论,因为 KeyNotFoundException 在调试期间可能以两种方式出现。正如 Mac 所指出的,我们确实捕获了 KeyNotFoundException,但是,调试器首先会看到异常,然后我们才能在库中处理它。调试器的行为由 Debug > Exceptions 中的设置决定。

如果选中 Thrown 下的复选框,程序将停止并输出上面的堆栈跟踪。如果未选中 Thrown 下的复选框,则输出将生成如下错误:

在 mscorlib.dll 中发生了“System.Collections.Generic.KeyNotFoundException”类型的第一次机会异常(这是 Buju 收到的消息)

程序将继续跟踪此消息,因为它只是作为程序中某处发生异常的通知。有关首次机会异常的更多信息,请参阅以下文章:

什么是第一次机会异常 - http://blogs.msdn.com/b/davidklinems/archive/2005/07/12/438061.aspx

如何处理(禁用)首次机会报告 - http://www.helixoft.com/blog/archives/24

【讨论】:

我还在 2 月 28 日向支持部门发送了电子邮件并收到了对我的问题的确认。请求代码是 2312。此后我没有收到任何信息。 我还通过电子邮件将支持发送到普通支持地址,因为我不知道有 winmosupport 地址。我的请求编号是#2411。 谢谢,我现在有你的票,我正在调查这个问题。 在库中抛出异常是一种非常愚蠢的方法。它适用于应用程序,但不适用于框架和库。我通过 Reflector 查看了代码。它只是试图从字典中获取属性,甚至不检查它是否包含它......这是学生编写的愚蠢的愚蠢废话

以上是关于Flurry 分析在 Windows Phone 7 中崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Flurry 崩溃分析的问题

Windows Phone 分析和高内存

IL2CPP:iOS 构建 NeatPlug 的链接错误 - Flurry Analytics 插件(通用)

iOS 应用的新用户与更新用户

Flurry 的正确桥接头是啥?

Flurry 的正确桥接头是啥?