我已将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支持讨论之后,似乎Flurry代码捕获了KeyNotFoundException。但是,如果在抛出异常时要中断调试器设置,则无论如何都会进入调试器。然后继续执行将起作用,因为Flurry会抓住并处理异常。
我无法验证这是否是解决方案,因为我无法再访问指示错误的开发环境,但它似乎是一种可能的解决方案。
答案 0 :(得分:2)
我为Flurry工作。我们在Windows 7平台上有许多成功的部署。你和Buju可能正在经历一个以前没有引起我们注意的新兴问题。请发送电子邮件至winmosupport@flurry.com,因为诊断可能涉及讨论帐户的具体细节。一旦我们确定了根本原因,我们就可以回复这个帖子,以便社区能够从我们的调查中获益。感谢您与Flurry合作。
修改强>
我只想跟进Mac的评论,因为KeyNotFoundException可能在调试过程中以两种方式显示。正如Mac所指出的那样,我们确实修改了KeyNotFoundException,但是在我们在库中处理它之前,调试器首先会看到异常。调试器的行为由Debug>中的设置决定。例外。
如果选择了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