How to send Android Crash report using ACRA

匆匆过客 提交于 2019-12-31 10:06:10

问题


Am trying to send crash report from my applicatio to my domain or Mail but failed still.

To get the crash report in mail, I did

@ReportsCrashes(

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

And the response is, Sending file 1372758321000-approved.stacktrace

checkAndSendReports - finish

To get the crash report in my domain, I did

@ReportsCrashes(

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

And the response is, Sending file 1372856882000-approved.stacktrace Failed to send crash report for 1372856882000-approved.stacktrace org.acra.sender.ReportSenderException: Error while sending FORM report via Http POST

Any help will be handy for me and appreciated.


回答1:


ACRA works for me sending reports by e-mail when I do exactly as they say in their docs:

@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

You are probably forgetting the toast part. Or can it be you don't have an e-mail program (such as when you're running on the simulator).

I think sending reports by Google docs are not supported anymore.




回答2:


Your application class should look like this.

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);
        }
    }



回答3:


No,not like Alex say,the mode property has no releation to the reporting type,you can see it in the source code in github using the mailTo type,you should make sure that:

  1. your app has the permission to connect network;
  2. have an e-mail program in your device like Alex say;
  3. have you invoked the ACRA.init(this) method in your application's oncreate()?

if all of these have done,then run your app,it will note you to configure the email,such as username and password and so on.



来源:https://stackoverflow.com/questions/17463237/how-to-send-android-crash-report-using-acra

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!