语境
我正在使用 VS 2017.3 开发 Xamarin.Forms 应用程序。我正在尝试诊断我的代码中发生异常的位置和原因。
我可以使用 SDK Android Emulator (HAX x86) 成功部署运行和调试我的应用程序。
但是,如果发生异常,我将看不到有关异常的任何信息,请参阅附加图片、设置。
问题
这在Android调试中是正常的,还是遗漏了什么?
...和我的build设置:
最佳答案
我想扩展@Uraitz 的答案,因为它帮助我解决了问题。
首先,正如他所解释的,您需要在您的事件中添加一个事件处理程序,如以下代码所示:
protected override void OnCreate(Bundle savedInstanceState)
{
...
//subscribe to unhandled event
AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;
...
}
private void CurrentDomainUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.ToString());
}
在我的例子中,我在
CurrentDomainUnhandledException
里面放了一个断点所以我可以检查异常。然而,即使在那里有那个断点,我运行我的代码仍然得到一个令人困惑的无调用堆栈错误。
在这一点上,我认为解决方案不起作用。事实上是这样,但在我的应用程序到达断点之前,我必须多次单击播放(继续)按钮:
单击该按钮后 两次 ,终于到了断点:
如果您想在调试器中获取调用堆栈,则必须在它可用之前深入研究几个级别,但您可以通过查看事件 args 参数来实现。
这个故事的寓意是——如果你已经添加了事件处理程序,但你仍然没有到达断点(或看到输出)——继续点击继续按钮!
关于visual-studio - Xamarin Android 调试 : No compatible code running,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46344434/