Android应用程序在未捕获的异常处理程序(Xamarin)中崩溃

时间:2018-07-30 01:43:14

标签: android xamarin unhandled-exception uncaughtexceptionhandler

我正在尝试使用Xamarin构建的仅限Android的应用程序中实现未捕获的异常处理程序,以进行日志记录。

AppDomain.CurrentDomain.UnhandledException += (o, e) => exLogger.UncaughtException((Exception)e.ExceptionObject);
TaskScheduler.UnobservedTaskException += (o, e) => exLogger.UncaughtException(e.Exception);

 public void UncaughtException(Exception ex)
 {
     try
     {

         Log.Error(TAG, "Exception caught: {0}", ex.Message ?? "Unknown Exception");
         var di = Directory.CreateDirectory(Path.Combine(context.FilesDir.AbsolutePath, TAG));

         //Rest of Handler - saves error to file system, attempts to upload to a server
         ...
     }
     catch (Exception)
     {
         Log.Error(TAG, "Exception handler failed");
     }
}

当我在一个非常简单的“ Hello World”应用程序中实现该处理程序时,该处理程序可以解决零个问题,在该应用程序中,我会在按下按钮时触发异常:

throw new Exception("this is a test exception");

(或类似)。

但是,当我在实际上正在开发的应用程序中执行相同的操作时,该应用程序将在处理程序内崩溃,而不会打印出有关发生这种情况的更多信息。
当我单步执行代码时,调试器在处理程序的入口处遇到断点-例如在try块中,但在Log.Error行之前。但是,尝试进一步执行此操作将导致应用程序立即崩溃,而没有执行try OR catch块中的Log.Debug行-没有任何内容打印到ADB Logger。此外,W/system.err打印到ADB日志的错误只是我有意引起的(触发处理程序)错误-在处理程序内未提供有关崩溃的信息。

是否有人知道可能导致此崩溃的原因,或者甚至关于如何从ADB日志中获取有关处理程序中崩溃是由什么原因的日志的建议?我唯一的思路是,由于我的应用程序是WebView应用程序,因此WebView本身可能会以某种方式使用Exception?任何帮助将不胜感激!

0 个答案:

没有答案