Подтвердить что ты не робот

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.

4b9b3361

Ответ 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. Спасибо....