Exception Android在异步方法中没有堆栈跟踪

Exception Android在异步方法中没有堆栈跟踪,exception,asynchronous,xamarin,xamarin.android,Exception,Asynchronous,Xamarin,Xamarin.android,任何人都可能找到了解决此错误的方法: ? 它让我发疯。。。屏幕截图是我从async方法得到的异常报告 好了,伙计们,我已经找到了解决这个bug的方法,下面是一步一步地处理它的方法,让Xamarin.Insights发挥作用 将文本文件添加到Android项目(名称无关紧要)并设置它 从属性中的“内容”到“AndroidEnvironment” 在您创建的文本文件中添加该标志: XA_breaked_EXCEPTION_TRANSITIONS=true-此标志表示我们将使用旧的Xamarin.

任何人都可能找到了解决此错误的方法:

?

它让我发疯。。。屏幕截图是我从async方法得到的异常报告


好了,伙计们,我已经找到了解决这个bug的方法,下面是一步一步地处理它的方法,让Xamarin.Insights发挥作用

  • 将文本文件添加到Android项目(名称无关紧要)并设置它 从属性中的“内容”到“AndroidEnvironment
  • 在您创建的文本文件中添加该标志: XA_breaked_EXCEPTION_TRANSITIONS=true-此标志表示我们将使用旧的Xamarin.Android 4.x异常处理
  • 然后在droid项目中添加android异常全局处理程序,它将处理通常在Xamarin.Insights(或其他报告工具)完成某些工作之前崩溃应用程序的android异常
  • AndroidEnvironment.UnhandledExceptionRaiser+=(发送方,参数)=>
    {
    args.Handled=true;
    }


    瞧,Xamarin.Insights准备好为您服务了:)

    这是另一个对我有效的解决方案。 只需在应用程序或主活动中添加此处理程序

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

    最后一篇文章中的解释可能是因为该方法是匿名的。不,堆栈跟踪应该始终有其来源。正确的异常必须具有托管代码调用方。这是一个bug,他们将“很快”修复,这意味着我们开发的应用程序将被提供给所有者……幸运的是,有一个叫做更新的东西。@Cheesebaron您能确认这个问题在更新中已修复吗?哪一个?