web-dev-qa-db-fra.com

Crashlytics / Fabric ne signale pas de plantages sur Android

J'ai des problèmes avec Fabric/Crashlytics.

J'utilise Android Studio 1.3.2

Voici mon 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:2.5.2@aar') {
        transitive = true;
    }
}

J'ai ajouté une clé API dans le manifeste (j'ai ajouté des métadonnées com.crashlytics.ApiKey, ainsi que io.fabric.ApiKey).

Je démarre Fabric dans la classe Application

Fabric.with(this, new Crashlytics());

Le problème est que la bêta fonctionne (je peux partager, mettre à jour, ouvrir l'application), les réponses fonctionnent (les sessions sont répertoriées et tout), je peux même enregistrer une exception avec

Crashlytics.logException("Test");

Et les plantages non mortels seront ajoutés au tableau de bord Fabric.

Mais pour une raison quelconque, aucun plantage "fatal" n'est signalé et envoyé à Fabric. Quelqu'un peut-il m'aider? Quelle pourrait être la raison? Qu'est-ce que je fais mal?

BTW - cela a commencé à se produire après la mise à jour de Crashlytics vers Fabric. J'ai réinstallé le plugin, supprimé l'application et l'ai ajouté à nouveau, essayé sans plugin pour Android Studio.

23
dmestrovic

Essayez de l'ajouter à votre classe d'application:

Fabric.with(this, new Crashlytics());

Pour utiliser le rapport de crash test:

Crashlytics.getInstance().crash();

Pour les non-fatals déclarés, utilisez:

Crashlytics.log("Your log");
Crashlytics.logException(new Throwable("This your not-fatal name"));

À partir de maintenant, vous devez mettre à jour l'API Fabric à la dernière 2.9.3 pour Android et dans votre fichier principal, vous devez l'ajouter dans la dernière méthode on create ()

final Fabric fabric = new Fabric.Builder(this)
            .kits(new Crashlytics())
            .debuggable(true)
            .build();
Fabric.with(fabric);
5
vallabh

J'ai eu un problème légèrement différent. Mes Crashlytics ont arrêté la journalisation des plantages soudainement après avoir ajouté la dépendance Answers à mon projet.

 compile('com.crashlytics.sdk.Android:crashlytics:2.5.5@aar') {
        transitive = true;
    }
 compile('com.crashlytics.sdk.Android:answers:1.3.10@aar') {
        transitive = true;
    }

La solution était simplement de supprimer la dépendance Answers. Vous n'en avez pas besoin car il est déjà là dans crashlytics pacakge com.crashlytics.Android.answers. *.

Cela peut être utile pour certains utilisateurs.

3
Midhun Vijayakumar

Après utilisation

final Fabric fabric = new Fabric.Builder(this) .kits(new Crashlytics()) .debuggable(true) .build(); Fabric.with(fabric);

implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.9'
implementation 'com.crashlytics.sdk.Android:answers:1.4.7'

Ajoutez ceci à AndroidManifest.xml

<meta-data
        Android:name="io.fabric.ApiKey"
        Android:value="MyFabricApiKey" />
    <meta-data Android:name="firebase_crashlytics_collection_enabled" Android:value="false" />

Cela fonctionne, Afficher le CRASH dans les deux panneaux Firebase et Fabric. Merci....

0
AllanRibas