2015-07-21 48 views
3

任何人也许发现这个bug的一些解决方法:Xamarin.Android在异步方法不具有堆栈跟踪

https://bugzilla.xamarin.com/show_bug.cgi?id=30513

它让我发疯...... screenshoot是我从异步方法获得的异常报告。

enter image description here

+0

可能是因为该方法是匿名的。 – Cheesebaron

+0

不,堆栈跟踪应始终具有其起源。正确的例外必须具有托管代码调用方。这是他们将修复“即将”,这意味着我们开发的应用程序后,将给予所有者的错误... –

+0

幸运的是,有一种称为更新。 – Cheesebaron

回答

0

欧凯家伙,所以我已经找到解决办法了这个bug,这里是一步一步做什么来处理它,让Xamarin.Insights工作。

  1. 文本文件添加到Android项目(名称并不重要),并在属性中设置从“内容” 为“AndroidEnvironment
  2. 在您创建添加标志的文本文件: 这个标志意味着我们将使用旧的Xamarin.Android 4.x异常处理
  3. 然后在你的droid项目中添加android异常全局处理程序,它将处理Android异常,这通常会在你的Xamarin之前崩溃应用程序。见解(或其他报告) ol)将能够做一些工作。

AndroidEnvironment.UnhandledExceptionRaiser += (sender, args) => { args.Handled = true; }

瞧,该Xamarin.Insights已经准备好为你工作:)

1

这里是另外一个解决方案,它为我工作。 就在您的应用程序或主要活动添加此处理

AndroidEnvironment.UnhandledExceptionRaiser += delegate(object sender, RaiseThrowableEventArgs args){ 
      typeof (System.Exception).GetField("stack_trace", BindingFlags.NonPublic | BindingFlags.Instance) 
       .SetValue(args.Exception, null); 
      throw args.Exception; 
     }; 

的解释是在这里的最后一个职位https://forums.xamarin.com/discussion/45219/stack-trace-not-captured-properly