Не удалось получить провайдер 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