Отключить firebase crashlytics для Android - PullRequest
0 голосов
/ 28 августа 2018

Я занимаюсь разработкой приложения для Android и интегрировал SDK для firebase и firebase crashlytics.

Я хочу разрешить пользователю отключать отчеты о сбоях (для обеспечения соответствия GDPR - я предполагаю, что отчеты о сбоях связаны с GDPR), поэтому необходимо, чтобы пользователь мог отключить его через настройки приложений.

Я нашел документы на https://firebase.google.com/docs/crash/disable-sdk, но когда я пытаюсь и строка:

FirebaseCrash.setCrashCollectionEnabled(true);

Android Studio выдаёт мне ошибку cannot resolve symbol 'FirebaseCrash'

Это необходимо сделать программно во время выполнения приложения.

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Отключить Crashlytics во время выполнения

// Set up Crashlytics, disabled for debug builds
    Crashlytics crashlyticsKit = new Crashlytics.Builder()
    .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
    .build();

    Fabric.with(this, crashlyticsKit);       

Ex

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Set up Crashlytics, disabled for debug builds
    Crashlytics crashlyticsKit = new Crashlytics.Builder()
    .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
    .build();

    Fabric.with(this, crashlyticsKit);
    setContentView(R.layout.activity_main);

}

Подробнее

boolean Agrees = value;
if(Agrees)
{
    Fabric.with(this,new Crashlytics());
}
else
 {
   CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(true).build();
   Fabric.with(this,  new Crashlytics.Builder().core(core).build());

throw new RuntimeException("why doesn't this show up in Firebase Crashlytics?");
 }

Редактировать 2

Ref: Не удается отключить Fabric Crashlytics с Firebase для сборок DEBUG

В документации Firebase Crashlytics объясняется, что после включения отчетности в сеансе приложения ее нельзя отключить.

По умолчанию отчеты Crashlytics включены в ContentProvider с именем CrashlyticsInitProvider , который выполняется до создания Application экземпляра. CrashlyticsInitProvider включает или отключает отчеты на основе значения метаданных firebase_crashlytics_collection_enabled, которое по умолчанию равно true.

Если вы хотите, чтобы отчеты были отключены, важно, чтобы метаданные манифеста присутствовали и имели значение false:

<meta-data
    android:name="firebase_crashlytics_collection_enabled"
    android:value="false" />

Посмотрите в logcat во время инициализации приложения сообщение:

CrashlyticsInitProvider: CrashlyticsInitProvider initialization successful

Если сообщение присутствует, firebase_crashlytics_collection_enabled имеет значение true. Если сообщение отсутствует, вы успешно установили метаданные для отключения отчетов о сбоях.

Если метаданные отсутствуют или имеют значение true, вы не можете отключить создание отчетов в своем коде с помощью вызова Fabric.with(...).

В комментарии к другому ответу вы указываете, что пытались отключить создание отчетов с использованием метаданных и не были успешными. Проверьте на опечатку и убедитесь, что объявление правильно размещено в элементе <application>. В моих тестах я могу отключить создание отчетов с использованием метаданных, а затем включить их во время выполнения.

0 голосов
/ 20 июля 2019

Если вы хотите полностью отключить отчеты Firebase Crash, а также не нужно добавлять

com.crashlytics.sdk.android:crashlytics:2.9.1

зависимость, затем:

Добавьте это в build.gradle вашего приложения:

android {

    // ...

    defaultConfig {
        manifestPlaceholders = [enableCrashReporting:"false"]
        ....
    }

}

, а затем добавьте это в свой AndroidManifest.xml:

<application ...>

    // ...

    <meta-data 
            android:name="firebase_crashlytics_collection_enabled" 
            android:value="${enableCrashReporting}" />
    <meta-data
            android:name="firebase_analytics_collection_deactivated"
            android:value="true"/>
</application>

0 голосов
/ 28 августа 2018

FirebaseCrash.setCrashCollectionEnabled(true); больше не поддерживается в новой версии Firebase Crash, которая называется Crashlytics. Для более https://firebase.google.com/docs/crash/

FirebaseCrash.setCrashCollectionEnabled(true);

заменяется на

Fabric.with(this, new Crashlytics());

Посмотри https://firebase.google.com/docs/crashlytics/upgrade-from-crash-reporting#set_up_manual_initialization

...