Xamarin android - 与未处理的异常无法正常工作相结合

时间:2013-12-12 15:04:58

标签: android xamarin.android xamarin crittercism

我已经创建了一个绑定项目,将我的onCreate等所有内容挂钩。除了未处理的异常外,一切正常。让我详细说明“一切正常” - 我可以通过crittercism的实时统计页面看到确实存在应用程序加载,我还可以使用“LogHandledException”接口发送“ManagedExceptions”。

我已经实现了ICritterCallback接口,而“CrashedOnLastLoad”布尔值总是为false。这很奇怪我可以看到应用程序崩溃。

我已经使用这3种方法尝试将我的日志发送给Crittercism。 (所有3个应用程序崩溃)

Java异常

throw new Java.Lang.IllegalArgumentException("This is a test for critter");

背景异常

.Click += delegate { ThreadPool.QueueUserWorkItem(o => { throw new Exception("Crashed Background thread."); } ); };

简单的.net例外

throw new Exception("Crashed UI thread.");

以上都没有在下次加载时注册为崩溃...怪异对吗?

也许.net运行时正在吞下所有未处理的异常,然后在dalvic的运行时优雅地调用exit ...这是可能的吗?

作为一个黑客,现在我按照blog post实现Android的异常处理程序,然后从两个事件中调用Crittercism.LogHandledException(Throwable.FromException(e.Exception));

它有效,但我使用Crittercism处理未处理异常的异常。所以当我想发送真正的“HandledExceptions”时,它们将在混乱中丢失。

那么有没有办法向Crittercism发送未处理的异常? 或者有没有办法从.net模拟android上的崩溃,将其发送给Crittercism?

非常感谢任何帮助!

干杯,
萨姆

1 个答案:

答案 0 :(得分:0)

Crittercism的联合创始人。我们刚刚发布了一个Xamarin的官方插件,它应该自动将javascript异常(和任何其他崩溃)记录为未处理的异常,这样你就不会再遇到这个问题了。您可以在此处从Xamarin资产商店下载最新版本:

http://components.xamarin.com/view/crittercism