Ответ 1
Майк из Ткань. Использование:
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
если вы хотите отключить Crashlytics при использовании Firebase.
После обновления до com.crashlytics.sdk.android:crashlytics:[email protected]
(с версии 2.6.8) я больше не могу отключать Crashlytics в моем приложении Firebase.
Похоже, есть какой-то код в самой библиотеке Crashlytics, который инициализирует Fabric с помощью Crashlytics kit включен, когда он обнаруживает, что он работает внутри приложения Firebase. В самом деле, инициализация с включенным Crashlytics и с ext.enableCrashlytics = false
вызывает исключение UnmetDependencyException и приводит к сбою приложения при запуске (на самом деле, до запуска моего кода в Application.onCreate
).
Кто-нибудь знает об этом? Пока что с 2.6.8 работает. Это то, что у меня есть в моем коде, который раньше работал до обновления:
Приложение/build.gradle:
ext.enableCrashlytics = false
Application.java(onCreate, тело полного метода по запросу):
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
return;
}
LeakCanary.install(this);
// First Fabric invocation
Fabric.with(this, new Crashlytics.Builder().core(
new CrashlyticsCore.Builder().disabled(true).build()).build());
RxJavaPlugins.setErrorHandler(e -> LOGGER.error("Undeliverable RxJava error", e));
// First Firebase invocation
FirebaseDatabase db = FirebaseDatabase.getInstance();
if (BuildConfig.DEBUG) {
db.setLogLevel(com.google.firebase.database.Logger.Level.DEBUG);
}
db.setPersistenceEnabled(true);
Майк из Ткань. Использование:
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
если вы хотите отключить Crashlytics при использовании Firebase.
согласно mike answer, im добавьте мой код:
Gradle:
buildTypes {
release {
manifestPlaceholders = [crashlyticsEnabled: true]
}
debug {
manifestPlaceholders = [crashlyticsEnabled: false]
}
}
Manifest.xml:
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${crashlyticsEnabled}" />
Наряду с Майклом выше ответ,
Если вы устанавливаете свойства аварийного завершения Firebase где-то в своем коде, убедитесь, что вы не установили их для кода отладки, в противном случае вы можете заметить странное поведение для приложения.
if (!BuildConfig.DEBUG) {
Crashlytics.setUserIdentifier(DataStore.storeId)
}