如何向开发者发送崩溃报告?

Posted

技术标签:

【中文标题】如何向开发者发送崩溃报告?【英文标题】:How to send crash reports to developer? 【发布时间】:2014-04-23 18:43:35 【问题描述】:

我开发 android 应用,但在某些情况下我的应用 force close

如果force close 随时发生,我如何向开发人员发送包含详细信息的电子邮件?

【问题讨论】:

您的问题到底是什么?是否要将堆栈跟踪发送给您,因为您是开发人员,您是否正在寻找远程堆栈跟踪? ACRA library 将崩溃报告放入 Google 电子表格中。也许这是电子邮件的可行替代方案? A.S.是的,我想将跟踪发送到我的电子邮件 【参考方案1】:

ACRA 库将满足您的要求。您只需要设置电子邮件。教程和设置定义here.

在lib中下载带有.jar的库

你只需要定义Application类并在application类上面写如下代码并像这样重写onCreate()方法

     @ReportsCrashes(formKey = "", // will not be used
                    mailTo = "reports@yourdomain.com",
                    mode = ReportingInteractionMode.TOAST,
                    resToastText = R.string.crash_toast_text)
    public class MyApplication extends Application 

 @Override
    public void onCreate() 
        ACRA.init(this);
        super.onCreate();
    


就是这样。电子邮件操作将被打开,其正文包含崩溃报告。

【讨论】:

Arca 是最好的!另外,我要补充一点,您不需要下载罐子。如果使用 gradle,您也可以添加: compile 'ch.acra:acra:4.6.2' (find latest) 到您的 gradle 构建依赖项中。【参考方案2】:

您可以使用现成的 APi,例如 BugSence 和 crittercism

实施 SDK 后,您将收到暗恋报告 如果您愿意,可以将暗恋日志记录到您的电子邮件中

对于 BugSance 下载SDK

import com.bugsense.trace.BugSenseHandler;

确保您还添加了该行

 <uses-permission android:name="android.permission.INTERNET" />

到您应用的 AndroidManifest.xml 文件。 BugSense 使用此权限来发送崩溃报告和性能指标。

在 setContentView 之前在您的活动中添加 BugSenseHandler。那么你就准备好了!

  public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    BugSenseHandler.initAndStartSession(Context, APIKEY);
    setContentView(R.layout.main);
    //rest of your code here
  

InitAndStartSession 方法安装 BugSense 异常处理程序和性能监视器。然后它会发送所有之前保存的崩溃报告和性能指标。同时,它会为您的活动启动一个新会话。

这是一个如何使用 InitAndStartSession 的示例:

BugSenseHandler.initAndStartSession(MyActivity.this, "YOURAPIKEY");

当你想显式启动会话时,你可以在你的activity的onStart方法中使用startSession方法,如下:

BugSenseHandler.startSession(MyActivity.this);

当你想关闭会话时,可以使用closeSession方法,如下:

BugSenseHandler.closeSession(MyActivity.this);

关闭会话将关闭当前会话,为您的用户提供更好的会话跟踪。

如果要手动刷新所有保存的数据,请使用 BugSenseHandler.flush(Context) 方法:

BugSenseHandler.flush(MyActivity.this);

更多文档Android BugSence Doc

【讨论】:

以上是关于如何向开发者发送崩溃报告?的主要内容,如果未能解决你的问题,请参考以下文章

如何作为 Android 应用的 alpha 测试人员发送崩溃报告?

Crashlytics 没有向我的 Fabric 仪表板发送崩溃报告?

Crashlytics 没有向我的 Fabric 仪表板发送崩溃报告?

如何从开发者控制台读取崩溃报告

如何最好地实现简单的崩溃/错误报告?

与开发者分享 iOS 应用崩溃报告