Устаревший метод Crashlytics отключен()

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

Crashlytics crashlytics = new Crashlytics.Builder().disabled(true).build();

Отключенный (логический) метод теперь устарел. Кто-нибудь знает, чем заменить программное отключение и включение крашейлитиков?


person Cameron McBride    schedule 27.05.2015    source источник


Ответы (2)


Майк из Crashlytics и Fabric здесь.

Вот что вы хотите использовать в зависимости от ваших предпочтений:

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, new Crashlytics.Builder().core(core).build());

or

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

См. CrashlyticsCore.Builder#disabled документация.

person Mike Bonnell    schedule 27.05.2015
comment
Идеально! Я бы хотел, чтобы была лучшая документация, где я мог бы найти это. - person Cameron McBride; 27.05.2015
comment
Майк, вторая строка должна читаться так: Fabric.with(this, new Crashlytics.Builder().core(core).build(), new Crashlytics()); Если нет, то я продолжаю получать следующую ошибку в трассировке стека, когда приложение запускает E/Fabric﹕ Ошибка при выполнении автоматической настройки. java.util.concurrent.ExecutionException: java.lang.IncompiledClassChangeError: интерфейс не реализован - person joelreeves; 29.05.2015
comment
@ jmrmb80 попробуйте использовать Crashytics 2.3.0 и дайте мне знать, если это сработает! - person Mike Bonnell; 29.05.2015
comment
@Mike B Спасибо, что исправили это! - person joelreeves; 30.05.2015
comment
Плагин Android Studio продолжает исправлять это? Fabric.with(это, новый Crashlytics.Builder().core(новый CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build()); ›› Fabric.with(this, new Crashlytics.Builder().core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build(), new Crashlytics()); - person TomCB; 12.06.2015
comment
Является ли это излишним, если мы отключим crashlytics в gradle через документацию, которая предлагает добавить ext.enableCrashlytics = false на вкус? - person gMale; 16.07.2015
comment
@gmale эта команда отключает сборку Crashlytics как часть потока сборки Gradle. Он не отключает Crashlytics во время выполнения. См. мой ответ здесь: stackoverflow.com/questions/28339323 / - person Mike Bonnell; 17.07.2015
comment
@MikeB, как мы можем отключить его во время выполнения? - person Shajeel Afzal; 23.08.2015
comment
Код выше не работает, я использую com.crashlytics.sdk.android:crashlytics:2.3.2@aar - person Shajeel Afzal; 23.08.2015
comment
@ShajeelAfzal вы хотели бы использовать что-то вроде этого: в настройках пользователя"> stackoverflow.com/questions/31992076/ - person Mike Bonnell; 31.08.2015
comment
@MikeBonnell, отключит ли этот код его, если он уже был включен раньше? Из того, что я вижу, «Fabric.with()» возвращает синглтон, который не изменяется, если он уже был инициализирован. - person Héctor Júdez Sapena; 08.02.2016
comment
@HéctorJúdezSapena В настоящее время для SDK нет переключателя уничтожения. После включения Crashlytics продолжает работать до завершения сеанса. Вам нужно будет перезапустить приложение, чтобы отключить его еще раз. - person Mike Bonnell; 09.02.2016
comment
@MikeBonnell, я сделал то, что вы упомянули выше. Но я думаю, что это не работает. Я все еще получаю Crashlytics report upload complete: <alphanumeric>.cls - person Udayaditya Barua; 02.06.2016
comment
@uday Было много разных комментариев, поэтому немного сложно следить за ними. Можете ли вы поделиться дополнительной информацией о том, что вы используете, а что не работает? - person Mike Bonnell; 02.06.2016
comment
Это все еще отправляет отчеты о сбоях в отладочных сборках. Ответ Марка может быть удобным для этого случая, но проект, над которым я работаю, предыдущий разработчик использовал метод crashlytics.logException во многих местах. Я хочу, чтобы отключенный метод фактически перестал отправлять отчеты о сбоях в отладочных сборках. - person santalu; 29.12.2017
comment
@MikeBonnell В настоящее время для SDK нет переключателя уничтожения. После включения Crashlytics продолжает работать до завершения сеанса. Вам нужно будет перезапустить приложение, чтобы отключить его еще раз. Это более старый комментарий. Действительно ли это утверждение действует даже сейчас? Мы не можем отключить Fabric, если он уже включен в одном сеансе? - person Sasank Sunkavalli; 16.04.2018
comment
Правильно, никаких изменений в SDK по этому поводу не было. - person Mike Bonnell; 16.04.2018

Пакет SDK Fabric Crashlytics устарел, и следует использовать FirebaseCrashlytics.

// Explicit initialization of Crashlytics is no longer required.
// OPTIONAL: If crash reporting has been explicitly disabled previously, add:
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG);

См. документацию по миграции здесь.

person Ben Russell    schedule 24.06.2020