2014-09-05 65 views
10

我正在使用Windows Phone 8.1应用程序。我进入该项目大约一个月,并且迄今为止所写的内容几乎没有任何问题。Windows Phone 8.1应用程序崩溃时未调试异步等待

我决定对应用程序进行一些测试,而不通过VS 2013调试器运行。现在,出于某种原因,应用程序在进入第一个屏幕之前崩溃。我没有任何例外或消息(我正在使用Raygun进行错误记录)。

我在整个使用异步方法(一些异步无效,其他异步任务),但所有这些工作时调试。

最主要的是会得到某种错误信息。我已经减少了对部分代码的评论,但最终这让我无处可去,因为看起来当我认为我发现了这个问题时,我又陷入了另一个崩溃的代码。

有一次,我发现调用ListView.UpdateLayout()时出现问题。我评论了这一点,该应用程序将正常运行没有崩溃。然后我再取消了一些代码的评论,现在又崩溃了。

如果有人知道从手机获取例外的方式,或者如果有人遇到过这个问题,任何帮助将不胜感激。我可以提供任何需要的进一步信息。

更新: 我想我已经将问题缩小到Sqlite.NET。我为WinRT使用Sqlite.Net以及名为SqliteNetExtensions的扩展。特别声明是

DataContext.Context.Connection.Table<Message>().Where(m => m.ChannelID == channelID && m.ChannelID.Contains("C")).ToList(); 

如果我评论这一点,应用程序运行没有问题。这个LINQ语句最多返回100条记录。我不认为100条记录的SELECT语句可能会导致应用程序崩溃,但它似乎是罪魁祸首。关于如何优化Sqlite.NET的任何想法?

UPDATE 2: 终于搞明白了!它根本不是SQLite。这根本不是我的代码。这是我的手机。我正在运行诺基亚Lumia图标。几周前我已经安装了Rudy Huyn的Lockscreen Beta。它在我卸载它时导致了一些问题,但它与我的应用程序无关。今天,我让我的商业伙伴在手机上安装我的应用程序,他有相同的型号手机。该应用程序大约快50倍,并没有崩溃。我从工厂恢复了我的手机,你看,它运行得很完美。所以,专业提示:不要安装鲁迪胡恩的LOCKSCREEN BETA!

+0

你可以尝试下在事件查看器日志上的劣势的好文章*应用与服务** **微软的Windows ** APPX \ **。 – 2014-09-05 20:32:43

+0

@JeroenVannevel谢谢,但这并没有给我太多。我真正需要的是查看电话本身上的错误/事件日志的方法。有什么方法可以获得这些信息吗? – 2014-09-05 20:38:13

+0

将该方法的全部内容放入try-catch中,并在messagedialog中捕获异常? – 2014-09-06 01:42:14

回答

1

另外,我会花时间确保您始终避免使用异步无效。有据可查的是,异步无效通常是麻烦的处方。

没有显示出here

相关问题