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

时间:2015-07-21 18:23:47

标签: exception asynchronous xamarin xamarin.android

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

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

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

enter image description here

2 个答案:

答案 0 :(得分:1)

这是另一个对我有用的解决方案。 只需在您的应用程序或主要活动

中添加此处理程序
Model1.find({}, function (err, elems) {
    if (err) {
        console.log('ERROR');
    } else {
        elems.forEach(function (el) {
            Model2.find({[QUERY RELATED WITH FIELDS IN 'el']}, function (err, elems2) {
                if (err) {
                    console.log('ERROR');
                } else {
                    //DO STAFF.
                }
            });
        });
    }
});

上一篇文章https://forums.xamarin.com/discussion/45219/stack-trace-not-captured-properly

中有解释

答案 1 :(得分:0)

Okey们,所以我找到了解决这个bug的方法,这里是一步一步地做些什么来处理它并让Xamarin.Insights工作。

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

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