C# Windows Phone 8.1应用程序在未调试异步等待时崩溃

C# Windows Phone 8.1应用程序在未调试异步等待时崩溃,c#,windows,windows-runtime,async-await,windows-phone-8.1,C#,Windows,Windows Runtime,Async Await,Windows Phone 8.1,我正在开发Windows Phone 8.1应用程序。我进入这个项目大约一个月了,到目前为止,我写的东西几乎没有什么问题 我决定在不通过VS2013调试器运行应用程序的情况下对其进行一些测试。现在,由于某种原因,应用程序在到达第一个屏幕之前就崩溃了。我没有收到任何异常或消息(我使用Raygun记录错误) 我一直在使用异步方法(一些是异步void,另一些是异步Task),但所有这些都在调试时起作用 最主要的帮助是获得某种错误消息。我已经减少到注释代码的各个部分,但最终这将使我一事无成,因为似乎当我

我正在开发Windows Phone 8.1应用程序。我进入这个项目大约一个月了,到目前为止,我写的东西几乎没有什么问题

我决定在不通过VS2013调试器运行应用程序的情况下对其进行一些测试。现在,由于某种原因,应用程序在到达第一个屏幕之前就崩溃了。我没有收到任何异常或消息(我使用Raygun记录错误)

我一直在使用异步方法(一些是异步void,另一些是异步Task),但所有这些都在调试时起作用

最主要的帮助是获得某种错误消息。我已经减少到注释代码的各个部分,但最终这将使我一事无成,因为似乎当我认为我发现了问题时,我会在代码的更深处再次崩溃

有一次,我发现调用ListView.UpdateLayout()时存在问题。我评论了这一点,应用程序将正常运行没有崩溃。然后我对一些代码进行了进一步的注释,现在它又崩溃了

如果有人知道从电话中获取异常的方法,或者有人以前遇到过此问题,我们将非常感谢您的帮助。我可以提供任何需要的进一步信息

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

    DataContext.Context.Connection.Table<Message>().Where(m => m.ChannelID == channelID && m.ChannelID.Contains("C")).ToList();
DataContext.Context.Connection.Table()。其中(m=>m.ChannelID==ChannelID&&m.ChannelID.Contains(“C”)。ToList();
如果我对此进行注释,则应用程序运行时不会出现任何问题。此LINQ语句最多返回100条记录。我不认为100条记录的SELECT语句会导致应用程序崩溃,但它似乎是罪魁祸首。关于如何优化Sqlite.NET有什么想法吗

更新2:
终于明白了!它根本不是SQLite。这根本不是我的代码。是我的电话。我正在运行诺基亚Lumia图标。几周前,我安装了Rudy Huyn的锁屏测试版。当我卸载它时,它导致了一些问题,但它与我的应用程序无关。今天,我让我的商业伙伴在他的手机上安装了我的应用程序,他有同样型号的手机。该应用程序大约快了50倍,并且没有崩溃。我把我的手机从工厂里恢复过来,瞧,它运行得很好。所以,专业提示:不要安装RUDY HUYN的锁屏测试版

顺便说一句,我会花时间确保您始终避免使用async void。众所周知,async void通常会带来麻烦


有一篇关于缺点的好文章

您可以在事件查看器中的“应用与服务”下的“Microsoft Windows Appx*@Jeroenvanevel”中尝试日志,谢谢,但这并没有给我多少帮助。我真正需要的是一种查看手机本身的错误/事件日志的方法。有什么方法可以获取这些信息吗?将该方法的全部内容放在一个try-catch中,并在messagedialog中捕获异常?@我已经尝试过了,但是没有骰子。就好像发生的任何异常都不会冒出来。我从未遇到过应用程序在调试模式下工作时没有问题,但在手机上运行时崩溃,并且没有引发异常的问题。您是否尝试在app.cs文件上的未处理异常事件中获取异常?把它扔进一个信息框或者用它写一封电子邮件。