Не удалось получить провайдер com.crashlytics.android.CrashlyticsInitProvider

После implementation 'com.google.firebase:firebase-core:16.0.1' и classpath 'com.google.gms:google-services:4.0.1'

Я начал получать следующую ошибку при запуске приложения:

ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.fentury.android, PID: 10771 java.lang.RuntimeException: Невозможно получить поставщика com.crashlytics.android.CrashlyticsInitProvider: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: это приложение на Crashlytics. Зарегистрируйтесь для получения доступа по адресу https://fabric.io/sign_up, установите инструмент сборки Android и попросите члена группы пригласить вас в эту организацию приложения. на android.app.ActivityThread.installProvider(ActivityThread.java:5856) на android.app.ActivityThread.installContentProviders(ActivityThread.java:5445) на android.app.ActivityThread.handleBindApplication(ActivityThread.java:5384) на android.app. ActivityThread. -wrap2 (ActivityThread.java) в android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1545) в android.os.Handler.dispatchMessage(Handler.java:102) в android.os.Looper.loop(Looper.java:154) в android.app.ActivityThread.main(ActivityThread.java:6119) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776). Причина: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: это приложение использует Crashlytics. Зарегистрируйтесь для получения доступа по адресу https://fabric.io/sign_up, установите инструмент сборки Android и попросите члена группы пригласить вас в эту организацию приложения. в com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:235) в com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:209) в io.fabricason.k. (InitializationTask.java:44) по адресу io.fabric.sdk.android.services.concurrency.AsyncTask.executeOnExecutor(AsyncTask.java:611) по адресу io.fabric.sdk.android.services.concurrency.PriorityAsyncTaskynecec(PriorityAsync(): 43) на io.fabric.sdk.android.Kit.initialize(Kit.java:69) на io.fabric.sdk.android.Fabric.initializeKits(Fabric.java:440) на io.fabric.sdk.android. Fabric.init(Fabric.java:384) на io.fabric.sdk.android.Fabric.setFabric(Fabric.java:342) на io.fabric.sdk.android.Fabric.with(Fabric.java:313) на .crashlytics.android.CrashlyticsInitProvider.onCreate(CrashlyticsInitProvider.java:27) в android.content.ContentProvider.attachInfo(ContentProvider.java:1751) в android.content.ContentProvider.attachInfo и ContentPappide.jp. ActivityThread.installProvider(ActivityThread.java:5853)... еще 10

Также добавлено в AndroidManifest.xml следующую строку:

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

Ответы

Ответ 1

Это помогло решить мою проблему

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

И удалите это:

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

Ответ 2

Я обнаружил, что единственное, что вам нужно сделать после следования инструкции по документации Firebase Crashlytics, это применить плагин Fabric в файле сборки вашего приложения (этот шаг фактически отсутствует в документации!).

В вашем уровне сборки build.gradle добавьте следующее

// Apply the Fabric plugin
apply plugin: 'io.fabric'

Изменение: Похоже, что этот шаг был недавно добавлен в документы (см. Шаг 2/часть 2).

Ответ 3

Если вы собираетесь использовать другие API Firebase, я бы предложил настроить crashlytics
Как упоминалось на странице Crashlytics Firebase, здесь.

И, очевидно, перед этим вам нужно настроить firebase для своего приложения
и создать проект через консоль firebase.
Я полагаю, вы уже это сделали.

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

dependencies {
    // ...
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'
}

на ткани:

dependencies {
    // ...
      implementation('com.crashlytics.sdk.android:crashlytics:[email protected]') {
    transitive = true;
  }
}

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

Ответ 4

Обновление зависимостей проекта

1. Добавьте репозитории Crashlytics и зависимость от файла build.gradle на уровне проекта:

buildscript {
        repositories {
            // ...
            maven {
               url 'https://maven.fabric.io/public'
            }
        }
        dependencies {
            // ...
            classpath 'io.fabric.tools:gradle:1.25.4'
        }
    }

    allprojects {
        // ...
        repositories {
           // ...
           maven {
               url 'https://maven.google.com/'
           }
        }
    }

2. Чтобы обновить зависимости приложения для Firebase Crashlytics, внесите следующие изменения в build.gradle на уровне приложения:

apply plugin: 'com.android.application'
/* Add the Fabric plugin: */
apply plugin: 'io.fabric'

dependencies {
  implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'
}

Ответ 5

Я столкнулся с этой проблемой, так как она была вызвана использованием неверного инициализатора Fabric.with() для отладочных сборок.

Не используйте:

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

// Initialize Fabric with the debug-disabled Crashlytics
Fabric.with(this, crashlyticsKit, new Crashlytics()); // WRONG!

Вместо этого используйте:

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

// Initialize Fabric with the debug-disabled Crashlytics
Fabric.with(this, crashlyticsKit); // Correct initializer!

Документация: https://docs.fabric.io/android/crashlytics/build-tools.html#disable-crashlytics-for-debug-builds