我已经将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捕获并处理了异常。
我无法验证这是否是解决方案,因为我无法再访问指示错误的开发环境,但是这似乎是一种可能的解决方案。
最佳答案
我为Flurry工作。我们在Windows 7平台上有许多成功的部署。您和Buju可能正在遇到一个以前未引起我们注意的新兴问题。请发送电子邮件至winmosupport@flurry.com,因为诊断可能涉及讨论帐户的详细信息。一旦确定了根本原因,我们就可以发回到该线程,以便社区受益于我们的调查。感谢您与Flurry合作。
编辑
我只是想跟进Mac的评论,因为KeyNotFoundException可能在调试期间以两种方式表现出来。正如Mac指出的那样,我们确实捕获了KeyNotFoundException,但是,调试器会先看到异常,然后才能在库中对其进行处理。调试器的行为由“调试”>“异常”中的设置决定。
如果选中“Throwd”下的复选框,则程序将停止,并且将输出上面的堆栈跟踪。如果未选中“ throw ”下的复选框,则输出将生成如下错误:
mscorlib.dll中发生了类型为'System.Collections.Generic.KeyNotFoundException'的第一次机会异常(这是Buju收到的消息)
该程序将继续遵循该消息,因为它只是作为程序内某处发生异常的通知。可以在以下文章中找到有关首次机会异常的更多信息:
什么是第一次机会异常(exception)-http://blogs.msdn.com/b/davidklinems/archive/2005/07/12/438061.aspx
如何处理(禁用)首次机会报告-http://www.helixoft.com/blog/archives/24
关于windows-phone-7 - Windows Phone 7使Flurry Analytics崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5161589/