ACRA 5.1.3 с пользовательским ReportSender не отправляет CrashReportData - PullRequest
0 голосов
/ 04 февраля 2019

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

def acraVersion = '5.1.3'    

dependencies {

    implementation "ch.acra:acra-core:$acraVersion"
    implementation "ch.acra:acra-http:$acraVersion"
    implementation "ch.acra:acra-toast:$acraVersion"
}

Мой класс отправителя пользовательского отчета:

public class MyCrashReportSender implements ReportSender {


    public MyCrashReportSender(Context context) {

    }


    @Override
    public void send(@NonNull Context context, @NonNull CrashReportData errorContent) {
        Timber.e("============== Crash report "+ errorContent.toString());
    }

    public static class MyCrashReportSenderFactory implements ReportSenderFactory {

        @NonNull
        @Override
        public ReportSender create(@NonNull Context context, @NonNull CoreConfiguration config) {
            return new MyCrashReportSender(context);
        }

        @Override
        public boolean enabled(@NonNull CoreConfiguration config) {
            return true;
        }
    }
}

И, наконец, мой класс Application.class, где я инициализирую lib

@AcraCore(buildConfigClass = BuildConfig.class,
        reportSenderFactoryClasses = MyCrashReportSender.MyCrashReportSenderFactory.class,
        reportFormat=StringFormat.JSON)
public class App extends Application {
...
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this);
        builder.setBuildConfigClass(BuildConfig.class).setReportFormat(StringFormat.JSON);
        builder.getPluginConfigurationBuilder(ToastConfigurationBuilder.class).setText("This better work");
        ACRA.init(this, builder);
    }
}

КогдаЯ запускаю клиент на устройстве. Я получаю этот журнал от ACRA:

02-04 16:48:29.900 17609-17609/com.mypackageName.client I/ACRA: ACRA is enabled for com.mypackageName, initializing...

, и когда возникает исключение, ACRA записывает журналы ошибок:

02-04 17:09:33.261 17609-17609/com.mypackageName E/ACRA: ACRA caught a NullPointerException for com.mypackageName
    java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference

Проблема заключается в том, что этот методникогда не звонил:

@Override
public void send(@NonNull Context context, @NonNull CrashReportData errorContent) {
    Timber.e("============== Crash report "+ errorContent.toString());
}

Кто-нибудь знает, почему?

Заранее спасибо!

...