Crashlytics/Fabric не сообщают о сбоях на Android
У меня есть некоторые проблемы с Fabric/Crashlytics.
Я использую Android Studio 1.3.2
Вот мой build.gradle
buildscript {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
android {
...
}
dependencies {
...
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true;
}
}
Я добавил api key в манифест (я добавил метаданные com.crashlytics.ApiKey, а также io.fabric.ApiKey).
Я запускаю Fabric в классе Application
Fabric.with(this, new Crashlytics());
Проблема в том, что Beta работает (я могу делиться, обновлять, открывать приложение), работает ответ (сеансы перечислены и все), я даже могу регистрировать исключение с
Crashlytics.logException("Test");
И нефатальные сбои будут добавлены в панель инструментов Fabric.
Но по какой-то причине никаких "фатальных" сбоев не сообщается и отправляется в Fabric. Может кто-нибудь, пожалуйста, помогите мне? Что может быть причиной? Что я делаю неправильно?
Btw - это началось после обновления с Crashlytics to Fabric. Я переустановил плагин, удалил приложение и добавил его снова, попробовал без плагина для Android Studio.
Ответы
Ответ 1
Попробуйте добавить его в свой класс приложений:
Fabric.with(this, new Crashlytics());
Для отчета об испытательном сбое используйте:
Crashlytics.getInstance().crash();
Для отчета о несмертельных случаях используйте:
Crashlytics.log("Your log");
Crashlytics.logException(new Throwable("This your not-fatal name"));
Ответ 2
На данный момент вам нужно обновить API-интерфейс Fabric до последней версии 2.9.3 для Android и
в вашем основном файле вам нужно добавить это в последний из метода create()
final Fabric fabric = new Fabric.Builder(this)
.kits(new Crashlytics())
.debuggable(true)
.build();
Fabric.with(fabric);
Ответ 3
У меня была немного другая проблема. Мои Crashlytics перестали регистрировать сбои внезапно после добавления зависимостей ответов к моему проекту.
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true;
}
compile('com.crashlytics.sdk.android:answers:[email protected]') {
transitive = true;
}
Решение заключалось только в том, чтобы удалить зависимость от ответов. Вам это не нужно, поскольку он уже существует в crashlytics pacakge com.crashlytics.android.answers. *.
Возможно, это будет полезно для некоторых пользователей.
Ответ 4
Убедитесь, что вы НЕ устанавливаете обработчик необработанных исключений по умолчанию (Thread.setDefaultUncaughtExceptionHandler). Это была моя проблема.
Ответ 5
Проект build.gradle: имя приложения
buildscript {
ext.kotlin_version = '1.3.31'
repositories {
google()
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath 'com.google.gms:google-services:4.2.0'
classpath 'io.fabric.tools:gradle:1.31.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://maven.google.com/' }
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Модуль build.gradle: приложение
apply plugin: 'io.fabric'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.crashlytics.sdk.android:answers:1.4.7'
Добавьте это в AndroidManifest.xml
<meta-data
android:name="io.fabric.ApiKey"
android:value="MyFabricApiKey" />
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="true" />
После использования
val core = CrashlyticsCore.Builder().build()
Fabric.with(Fabric.Builder(this)
.kits(Crashlytics.Builder().core(core).build())
.initializationCallback(object: InitializationCallback<Fabric> {
override fun success(p0: Fabric?) {
LogClass().log("Fabric","$p0")
}
override fun failure(p0: Exception?) {
LogClass().log("Exception","$p0")
}
})
.build()
)
Fabric.with(this, Answers())
Это работает, покажите CRASH в панели Firebase и Fabric. Спасибо....