如何向开发人员发送崩溃报告?

时间:2014-03-18 07:56:30

标签: android crash-reports forceclose

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

如果force close在任何时间发生,我如何向开发者发送包含详细信息的电子邮件?

2 个答案:

答案 0 :(得分:15)

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

在lib中使用.jar下载库

您只需要定义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();
    }

}

多数民众赞成。电子邮件操作将打开,其正文包含崩溃报告。

答案 1 :(得分:3)

您可以使用现成的APi,例如BugSencecrittercism

实施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");

每当您想显式启动会话时,您可以在活动的onStart方法中使用startSession方法,如下所示:

BugSenseHandler.startSession(MyActivity.this);

每当您想要关闭会话时,您可以使用closeSession方法,如下所示:

BugSenseHandler.closeSession(MyActivity.this);

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

如果要手动清除所有已保存的数据,请使用BugSenseHandler.flush(上下文)方法:

BugSenseHandler.flush(MyActivity.this);

更多文档Android BugSence Doc