6

我已将 Flurry (http://www.flurry.com/) 集成到我的手机 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 捕获和处理。

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

4

1 回答 1

2

我为 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

于 2011-03-07T19:02:15.817 回答