如何使用ACRA发送Android崩溃报告

时间:2013-07-04 06:26:20

标签: android exception crash crash-reports acra

我试图将崩溃报告从我的应用程序发送到我的域或邮件但仍然失败。

要通过邮件获取崩溃报告,我做了

@ReportsCrashes(

      formKey = "",
      mailTo = "abc@gmail.com"
  )

响应是, 发送文件1372758321000-approved.stacktrace

checkAndSendReports - 完成

要在我的域中获取崩溃报告,我做了

@ReportsCrashes(

      formKey = "",
      formUri = "http://www.abc.com/test1"
)

响应是, 发送文件1372856882000-approved.stacktrace 无法发送1372856882000-approved.stacktrace的崩溃报告 org.acra.sender.ReportSenderException:通过Http POST发送FORM报告时出错

任何帮助都会对我很方便,并表示赞赏。

3 个答案:

答案 0 :(得分:24)

当我完全像他们在文档中所说的那样,ACRA通过电子邮件发送报告:

@ReportsCrashes(mailTo = "reports@yourdomain.com", // my email here
                mode = ReportingInteractionMode.TOAST,
                resToastText = R.string.crash_toast_text)

https://github.com/ACRA/acra/wiki/Report-Destinations#sending-reports-by-email

你可能忘记了吐司部分。或者可能是你没有电子邮件程序(例如当你在模拟器上运行时)。

我认为不再支持通过Google文档发送报告了。

答案 1 :(得分:4)

您的应用程序类应该如下所示。

import android.app.Application;

    import org.acra.ACRA;
    import org.acra.ReportField;
    import org.acra.ReportingInteractionMode;
    import org.acra.annotation.ReportsCrashes;


    @ReportsCrashes(mailTo = "user@domain.com", customReportContent = {
            ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME,
            ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL,
            ReportField.CUSTOM_DATA, ReportField.STACK_TRACE, ReportField.LOGCAT},
            mode = ReportingInteractionMode.TOAST, resToastText = R.string.crash_toast_text)
    public class MyApplication extends Application {

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

答案 2 :(得分:2)

不,不像Alex说的那样,mode属性没有报告类型,你可以在github的源代码中看到它 使用mailTo类型,你应该确保:

  1. 您的应用有权连接网络;
  2. 在您的设备中有一个电子邮件程序,如Alex说;
  3. 您是否在应用程序的oncreate()中调用了ACRA.init(this)方法?
  4. 如果所有这些都已完成,那么运行您的应用程序,它会注意您配置电子邮件,例如用户名和密码等。