2013-07-04 2 views
4

Я пытаюсь отправить отчет о сбоях из моего приложения в мой домен или почту, но не удалось.Как отправить отчет о сбоях Android с помощью ACRA

Чтобы получить отчет об ошибке в почте, я

@ReportsCrashes (

 formKey = "", 
     mailTo = "[email protected]" 
) 

И ответ, Отправка файла00-approved.stacktrace

checkAndSendReports - закончить

Чтобы получить отчет о сбое в моем домене, я сделал

@ReportsCrashes (

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

и ответ, Отправка файла 1372856882000-approved.stacktrace Не удалось отправить отчет об ошибке для 1372856882000-approved.stacktrace org.acra.sender.ReportSenderException: Ошибка при отправке ФОРМУ отчет через Http POST

Любая помощь будет полезна для меня и оценена.

ответ

23

ACRA работает для меня отправки отчетов по электронной почте, когда я делаю именно так, как они говорят, в их документации:

@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

Вы, вероятно, забывая тостов часть. Или может быть, у вас нет программы электронной почты (например, когда вы работаете на симуляторе).

Я думаю, что отправка отчетов с помощью документов Google больше не поддерживается.

+1

Я пытаюсь запустить acra в моем приложении, которое отлично работает для меня. Но проблема в том, что я не получил никаких писем оттуда. Помогите мне – Satheesh

1

Нет, не так, как Алекс сказать, свойство режима не имеет releation к типу отчетности, вы можете увидеть его в исходном коде в GitHub с использованием типа MailTo, вы должны убедиться, что:

  1. ваше приложение имеет разрешение на подключение сети;
  2. есть программа электронной почты на вашем устройстве, например, Alex;
  3. Вы вызвали метод ACRA.init (this) в своем приложении oncreate()?

Если все это сделано, а затем запустите приложение, он отметит, что вы настраиваете электронную почту, такую ​​как имя пользователя и пароль, и так далее.

+1

Я не думаю, что приложение должно иметь разрешение INTERNET на отправку отчетов от ACRA –

+0

Да, вы правы, разрешение на Интернет не обязательно. Я попробовал еще раз, я обнаружил, что formKey должен быть не null, если он равен нулю, когда приложение разбилось, система Android отобразит диалоговое окно для выбора программы для обработки, даже если вы выбираете программу электронной почты, он по-прежнему не будет отправлять электронную почту. – user2327225

+0

кроме того, свойство mode не является обязательным, если вы его настроили, когда приложение разбилось, система не будет всплывать окно сбоя – user2327225

1

Ваш класс приложения должен выглядеть следующим образом.

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