【问题标题】:How to get the full information of runtime error instead of <Timeout exceeded getting exception details>?如何获取运行时错误的完整信息,而不是 <Timeout exceeded getting exception details>?
【发布时间】:2018-08-31 08:02:50
【问题描述】:

所以我在 VS2017 中试用 xamarin,但发现这个未处理的错误:

Unhandled Exception:

Java.Lang.SecurityException: <Timeout exceeded getting exception details>

这是非常无知的。如何像在 Android Studio 中那样获取运行时错误的完整信息?

【问题讨论】:

  • 你用 try-catch 块包围异常,这样你就可以记录异常消息
  • @FarabiAbdelwahed 是的,它有效。但这是一项适得其反的工作,而不是真正的解决方案。

标签: android debugging xamarin visual-studio-2017


【解决方案1】:

我在调用一些原生 API 时遇到了同样的问题, 解决了

在抛出错误的 got 块周围放置一个 try catch。 在 catch 块中设置断点,可以得到异常的实际细节。

【讨论】:

  • 这行得通。但这仍然是一种解决方法并且适得其反(调试>放置尝试捕获>测试>删除尝试捕获)。真的没有可以像android studio一样运行的解决方案吗?这是 xamarin 的极限吗?
  • 更新:我还发现了在 try 块内发生错误的实例。
  • 我不知道有任何替代解决方案。
【解决方案2】:

在得到微软的帮助后,我终于找到了解决办法。

TL;DR

使用 VS Android 设备日志并使用“mono-rt”或“错误”进行过滤

完整答案:

有两种解决方案:

1.使用 Android Studio logcat:

打开 Android Studio logcat(查看 > 工具窗口 > Logcat)。在 logcat 窗口中,选择设备,选择 Xamarin.Android 部署的应用程序,然后选择 logcat 作为错误

Android logcat 会显示运行时错误:

2。使用 Visual Studio Android 设备日志:

打开 Visual Studio Android 设备日志(工具 > Android > 设备日志)。

这里有一点棘手:与 Android Studio 不同,VS 列出所有设备日志,不限于部署的 Xamarin.Android 应用程序。所以我们必须以某种方式使用过滤器来获取相关信息。问题是,我们应该使用什么过滤器?我使用了我的应用程序名称,但没有出现错误。事实证明,当错误发生时,日志不包含任何应用程序名称。相反,它具有“错误”类型的“mono-rt”标签。

所以你有它。用“mono-rt”标签或“Error”类型过滤,你会发现错误信息

【讨论】:

    猜你喜欢
    • 2019-08-30
    • 1970-01-01
    • 2019-06-24
    • 1970-01-01
    • 2017-01-26
    • 2020-02-16
    • 2016-06-13
    • 2018-08-30
    • 1970-01-01
    相关资源
    最近更新 更多