1

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

我已经实现了 ICritterCallback 接口,并且“CrashedOnLastLoad”布尔值始终为假。这很奇怪,因为我可以看到应用程序崩溃。

我已经使用这 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 ...这可能吗..?

作为一个 hack,我现在根据这篇博客文章为 android 实现异常处理程序,然后从两个事件内部调用Crittercism.LogHandledException(Throwable.FromException(e.Exception));

它可以工作,但我使用 Crittercism 的已处理异常来处理未处理的异常。所以当我想发送真正的“HandledExceptions”时,它们会迷失在混乱中。

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

任何帮助将非常感激!

干杯,
山姆

4

1 回答 1

0

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

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

于 2014-07-25T05:15:36.330 回答