Использование ACRA с tracepot в качестве бэкэнда - PullRequest
0 голосов
/ 17 сентября 2018

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

RESULT : когда происходит сбойприложение gmail запустится на устройстве, и пользователь (если захочет) отправит отчет о сбое по электронной почте. Учитывая, что не все пользователи захотят, .. я нашел в комментарии в одной из тем SO, что некоторыеразработчики используют tracepot.
, поэтому я использовал их ссылку для интеграции в formUri, но, изучая свой аккаунт на tracepot, я ничего не получаю ... если я что-то не так делаю (или если есть более подходящее решение, чем использование tracepot в качестве бэкэнда, пожалуйста,предложить / объяснить или связать хороший учебник, спасибо!) MyApplication.Java ( ПОСЛЕ РЕДАКТИРОВАНИЯ

@ReportsCrashes(


 formUri = "https://collector.tracepot.com/79b1***",
         reportType = org.acra.sender.HttpSender.Type.JSON,
    httpMethod = org.acra.sender.HttpSender.Method.PUT,
                mode = ReportingInteractionMode.TOAST,
        resToastText = R.string.crash_toast_text
)
public class MyApplication extends Application {
     @Override
    public void onCreate() {
        super.onCreate();

  CaocConfig.Builder.create()
            //.errorActivity(CustomErrorActivity.class) //default: null (default error activity)
            .apply();

        // The following line triggers the initialization of ACRA
        ACRA.init(this);
    }
}

РЕДАКТИРОВАТЬ: сообщение в журналеt если я использую http и электронную почту:

09-17 18:37:33.700 14329-14812/ma.ac.iav.menunaviagtion:acra W/ACRA: ma.ac.iav.menunaviagtion reports will be sent by email (if accepted by user).
09-17 18:37:33.703 14329-14812/ma.ac.iav.menunaviagtion:acra I/ACRA: Sending report /data/user/0/ma.ac.iav.menunaviagtion/app_ACRA-approved/2018-09-17T18:37:33.441+01:00-IS_SILENT.stacktrace

если я использую только http:

09-17 22:47:00.648 20116-20137/ma.ac.iav.myapplication:acra E/ACRA: Failed to send crash report for /data/user/0/ma.ac.iav.myapplication/app_ACRA-approved/2018-09-17T22:44:52.199+00:00-IS_SILENT.stacktrace

РЕАЛИЗАЦИЯ:

compile 'ch.acra:acra:4.9.2'

LOGCAT FOR F43nd1r

09-18 01:39:49.631 18508-18803/? E/AndroidRuntime: FATAL EXCEPTION: Thread-5
    Process: ma.ac.iav.myapplication, PID: 18508
    java.lang.InternalError: Thread starting during runtime shutdown
        at java.lang.Thread.nativeCreate(Native Method)
        at java.lang.Thread.start(Thread.java:733)
        at android.app.SharedPreferencesImpl.startLoadFromDisk(SharedPreferencesImpl.java:119)
        at android.app.SharedPreferencesImpl.<init>(SharedPreferencesImpl.java:112)
        at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:392)
        at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:373)
        at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:167)
        at cat.ereza.customactivityoncrash.CustomActivityOnCrash.getLastCrashTimestamp(CustomActivityOnCrash.java:673)
        at cat.ereza.customactivityoncrash.CustomActivityOnCrash.hasCrashedInTheLastSeconds(CustomActivityOnCrash.java:683)
        at cat.ereza.customactivityoncrash.CustomActivityOnCrash.access$200(CustomActivityOnCrash.java:52)
        at cat.ereza.customactivityoncrash.CustomActivityOnCrash$1.uncaughtException(CustomActivityOnCrash.java:112)
        at org.acra.builder.ReportExecutor.endApplication(ReportExecutor.java:269)
        at org.acra.builder.ReportExecutor.dialogAndEnd(ReportExecutor.java:254)
        at org.acra.builder.ReportExecutor.access$400(ReportExecutor.java:42)
        at org.acra.builder.ReportExecutor$2.run(ReportExecutor.java:217)

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

По умолчанию, если почтовый конфиг присутствует, Acra 4 отправит по почте и ничего больше.Чтобы использовать оба варианта, вам необходимо настроить reportSenderFactories.


400: ошибка клиента

Указывает, что трассировка отклонила ваш отчет.Это может иметь несколько причин.Чтобы выяснить, в чем проблема, позвоните ACRA.DEV_LOGGING = true; прямо перед ACRA.init и опубликуйте все logcat с тегом ACRA.


Также обратите внимание, что ACRA 4.9.2 не поддерживает Android Oreo ивыше рекомендуется обновить хотя бы до ACRA 4.11 или до самой последней версии 5.2.0.

0 голосов
/ 17 сентября 2018

Вы не отправляете все необходимые поля в Tracepot.

https://tracepot.uservoice.com/knowledgebase/articles/355272-what-are-the-required-fields-acra-needs-to-send

  • ANDROID_VERSION
  • APP_VERSION_CODE
  • APP_VERSION_NAME
  • PACKAGE_NAME
  • REPORT_ID
  • STACK_TRACE
  • USER_APP_START_DATE
  • USER_CRASH_DATE
...