Android 系列 3.9使用崩溃报告自动获取错误报告

来源:互联网 发布:淘宝双11狂欢夜晚会 编辑:程序博客网 时间:2024/05/29 09:14
3.9使用崩溃报告自动获取错误报告


问题
用户不一定在每次您的应用崩溃时都通知您,而当他们这样做时,通常会省略重要的细节。你想要一个服务捕获每一个异常,并详细报告。

有用于报告应用程序崩溃的开源和商业技术。其中一个广泛使用的开源的是ACRA,Android应用崩溃报告。 ACRA提供自己的后端报告工具,但也支持Google文档和许多其他后端。如果您有自己的Java EE服务器,则可以使用作者自己的CrashBurnFree服务,这也适用于Java的非Android实现。或者,您可以注册一个商业服务。
对于大多数这些,您只需要添加一个JAR文件和一个调用到您的应用程序。然后坐下并等待通知,或查看相应的Web信息中心以了解错误和详细信息页面列表。
讨论
没有什么神奇的报告崩溃,它不提供任何你不能自己做的。但它已经为你做,所以只是使用它!
使用ACRA的基本步骤是:
1.决定要使用哪个服务器/后端。
2.将一个JAR文件添加到项目中。
3.注释应用程序类,以表明它是启用ACRA的应用程序。
使用CrashBurnFree的基本步骤是:
1.下载服务器jar,或者,从https://github.com/IanDarwin/Crash BurnFree构建它。将其部署到您的服务器。
2.配置自己在服务器中使用的安全密钥。
3.将一个JAR文件添加到项目中。
4.将一个调用(使用安全密钥)添加到您的Application类或主活动的onCreate()方法中。
步骤1超出了本书的范围;如果你有一个Java EE服务器,你可以处理它。
要使用其中一个商业服务,请使用这些步骤(我们使用BugSense,但其他人工作在类似的方式)。
1.使用BugSense免费或高级版创建帐户,网址为http://www.bugsense.com。
2.注册您的应用程序,并从上述网站检索其唯一的密钥。
3.从上述网站下载JAR文件,并将其添加到您的项目中。
4.将一个调用(使用应用程序的唯一键)添加到您的Application类或主活动的onCreate()方法中。
完成上述步骤后,您可以将您的应用程序分发给用户。步骤1和2很简单,因此我们不再进一步讨论。其余步骤需要更多细节,我们将在以下小节中讨论它们。
项目设置
可以使用以下Maven坐标添加ACRA的JAR文件;如果你使用Gradle,你知道如何修剪这个。
<dependency><groupId>ch.acra</groupId><artifactId>acra</artifactId><version>v4.9.0</version></dependency>

类似的CrashBurnFree:
<dependency><groupId>com.darwinsys</groupId><artifactId>crashburnfree-javaclient</artifactId><version>1.0.2</version></dependency>

BugSense的JAR文件是bugsense-trace.jar;您可以从$$ https://bugsense.com/下载
。您可能知道如何向您的项目添加JAR。
因为这种机制通过互联网报告错误,以下应该不用说(但让我说它反正):你需要互联网权限才能使用它!将以下代码添加到您的AndroidManifest.xml文件:
<uses-permission android:name =“android.permission.INTERNET”/>
在应用启动时请求崩溃报告
你通常只需要在你的Application类或Activity的onCreate()方法中调用一个:
对于ACRA,请注释应用程序类启动。

import org.acra.*;import org.acra.annotation.*;@ReportsCrashes(formUri = "http://somereportingbackend.com/somereportpath")public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();ACRA.init(this);...}}
这里是CrashBurnFree的onCreate()方法中的代码:
final long KEY = 12345;final String PASS = "some enchanted evening";final String url = "https:// REST URL to your server";@Overridepublic void onCreate() {super.onCreate();setContentView(R.layout.main);CrashBurnFree.register(url, key, pass);...}

下面是Bugsense的onCreate()方法中的代码:

private static final String KEY = "... your key here ...";@Overridepublic void onCreate() {super.onCreate();setContentView(R.layout.main);BugSenseHandler.setup(this, OUR_BUGSENSE_API_KEY);...}


0 0