Как отключить Crashlytics / Fabric во время выполнения, когда пользователь меняет настройки

Я использую com.crashlytics.sdk.android:crashlytics:2.3.2@aar версию crashlytics и отключить отчеты о сбоях, если пользователь откажется.

Я пробовал это решение, но все же он не работает, отчеты о сбоях все еще отправляются в Fabric.

Я делаю это как:

 Preference errorReportingEnabled = findPreference(MatlistanPrefs.BUGREPORTS_SEND_AUTOMATICALLY); errorReportingEnabled.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { Boolean value = (Boolean) newValue; Fabric.with(DataCollectionSettingsActivity.this, new Crashlytics.Builder(). core(new CrashlyticsCore.Builder().disabled(!value).build()) .build()); return true; } }); 

Есть ли какое-либо рабочее решение для этой проблемы?

Благодарю.

Ткань при инициализации создает экземпляр singleton и возвращает тот же самый экземпляр всякий раз, когда вы вызываете Fabric.with(...) . Таким образом, ваш код внутри onPreferenceChange не влияет на класс Fabric.

Единственное решение этой проблемы может заключаться в том, что сама библиотека предоставляет методы включения или отключения краш-тестов. Итак, до сих пор ( crashlytics:2.5.2 ) нет решения для включения / отключения краш-тестов во время выполнения. Вы должны сделать это при запуске следующим образом:

 Fabric.with(this, new Crashlytics.Builder() .core(new CrashlyticsCore.Builder() .disabled(true).build()).build());