我创建了一个绑定项目,将所有内容都连接到我的 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?
任何帮助将非常感激!
干杯,
山姆