我们正在将使用.NET MonoTouch编写的iPhone应用程序套件转换为Android。
我们如何捕获并发布异常,以便通过Android市场报告它们?
您需要使用:
Thread.setDefaultUncaughtExceptionHandler(handler)
在那里,您可以捕获一切并发送电子邮件、通知等。
编辑:
请查看这些问题,它们基本上是相同的:
我强烈推荐使用android-remote-stacktrace库。它使用了Macarse所提到的方法,但是将其包装成有用的POST请求发送到您的服务器,您可以将其放入数据库或发送电子邮件。
还有Google的ACRA项目(Android应用程序崩溃报告)。
ACRA是一个库,使Android应用程序能够自动将其崩溃报告发布到GoogleDoc表单中。它针对的是Android应用程序开发人员,以帮助他们在应用程序崩溃或行为错误时获取数据。
以下是与此问题相关的关于ACRA的一些要点:
- 提供有关运行应用程序的设备的更详细的崩溃报告,比Android市场开发人员控制台错误报告中显示的信息更详细
- 您可以将自己的变量内容或调试跟踪添加到报告中
- 即使应用程序没有崩溃,也可以发送错误报告
我们最近开始在Andromo中使用ACRA接收崩溃报告,因为使用Andromo制作的应用程序是由设计应用程序的用户上传到市场的,而不是由我们上传的。(否则,我们将依赖我们的用户向我们转发任何崩溃报告。)
它还向尚未上传到市场的应用程序发送报告,这是一个不错的奖励,因为我们有可能在应用程序仍在测试阶段时就发现问题,而不是在用户将其上传到市场之后才发现。