How to send Android Crash report using ACRA
Asked Answered
E

3

7

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 = "[email protected]"
  )

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.

Emplane answered 4/7, 2013 at 6:26 Comment(0)
L
27

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

@ReportsCrashes(mailTo = "[email protected]", // 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.

Lefty answered 4/7, 2013 at 6:33 Comment(1)
I am trying to run acra in my application which is working fine to me. But the problem is I didn't get any email from there.please help meLumpkin
S
6

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 = "[email protected]", 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);
        }
    }
Sedge answered 18/11, 2016 at 7:21 Comment(0)
S
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.

Schoolman answered 4/7, 2013 at 9:27 Comment(3)
I don't think an app has to have INTERNET permission to mail reports by ACRALefty
yes,you are right,has the Internet permission is not must.I tried it again,I found that,the formKey must be not null,if it is null,when the app crashed,the android system will show a dialog for you to choose a program to process,even though you select the email program,it still won't be send email.Schoolman
besides,the mode property is not the must,if you configured it,when you app crashed,the system will not popup the crash windowSchoolman

© 2022 - 2024 — McMap. All rights reserved.