visual-studio - Xamarin Android 调试 : No compatible code running

标签 visual-studio xamarin xamarin.forms

语境

我正在使用 VS 2017.3 开发 Xamarin.Forms 应用程序。我正在尝试诊断我的代码中发生异常的位置和原因。

我可以使用 SDK Android Emulator (HAX x86) 成功部署运行和调试我的应用程序。

但是,如果发生异常,我将看不到有关异常的任何信息,请参阅附加图片、设置。

问题

这在Android调试中是正常的,还是遗漏了什么?

enter image description here

...和我的build设置:

enter image description here

最佳答案

我想扩展@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 里面放了一个断点所以我可以检查异常。

然而,即使在那里有那个断点,我运行我的代码仍然得到一个令人困惑的无调用堆栈错误。

enter image description here

在这一点上,我认为解决方案不起作用。事实上是这样,但在我的应用程序到达断点之前,我必须多次单击播放(继续)按钮:

enter image description here

单击该按钮后 两次 ,终于到了断点:

enter image description here

如果您想在调试器中获取调用堆栈,则必须在它可用之前深入研究几个级别,但您可以通过查看事件 args 参数来实现。

enter image description here

这个故事的寓意是——如果你已经添加了事件处理程序,但你仍然没有到达断点(或看到输出)——继续点击继续按钮!

关于visual-studio - Xamarin Android 调试 : No compatible code running,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46344434/

相关文章:

mvvm - Xamarin Forms 和 TabGestureRecognizer 不会使用 Command 触发

ASP.NET、Visual Studio、C# 和 Javascript

visual-studio - 安装 Visual Studio 扩展时缺少 Microsoft.VisualStudio.Component.CoreEditor

ios - NetworkInterface.GetAllNetworkInterfaces() 返回 Xamarin.iOS 中 OperationalStatus 为 'Unknown' 的接口(interface)

c# - 由于包 ZedGraph 不兼容,无法运行包 EmguCV

android - Xamarin Forms MasterDetail 页面导航导致 Android 崩溃 [致命信号 6 (SIGABRT),代码 -6],适用于 iOS 和 UWP

c# - Xamarin Forms 动态 ListView

visual-studio - 如何从远程办公室通过 Internet 访问 VS 2010 TFS

.net - 通用列表 AddRange() 类型安全

ios - 在IOS中的DialogViewController中添加带有图像的标签