Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Passen Sie Ihre Firebase Crashlytics-Absturzberichte an

In diesem Handbuch wird beschrieben, wie Sie Ihre Absturzberichte mithilfe des Firebase Crashlytics SDK anpassen. Standardmäßig sammelt Crashlytics automatisch Absturzberichte für alle Benutzer Ihrer App (Sie können die automatische Absturzberichterstattung deaktivieren und stattdessen die Opt-In-Berichterstellung für Ihre Benutzer aktivieren ). Crashlytics bietet sofort vier Protokollierungsmechanismen: benutzerdefinierte Schlüssel , benutzerdefinierte Protokolle , Benutzerkennungen und abgefangene Ausnahmen .

Fügen Sie benutzerdefinierte Schlüssel hinzu

Mit benutzerdefinierten Schlüsseln können Sie den spezifischen Status Ihrer App ermitteln, der zu einem Absturz führt. Sie können Ihren Absturzberichten beliebige Schlüssel / Wert-Paare zuordnen und diese in der Firebase-Konsole anzeigen .

Verwenden Sie die setCustomKey , um Schlüssel / Wert-Paare setCustomKey :

Java

setCustomKey ist überladen, damit der value Parameter alle primitiven oder String-Argumente akzeptiert. Beispielsweise:

// Set a key to a string.
FirebaseCrashlytics.getInstance().setCustomKey("str_key", "hello");

// Set a key to a boolean.
FirebaseCrashlytics.getInstance().setCustomKey("bool_key", true);

// Set a key to an int.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1);

// Set a key to a long.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1L);

// Set a key to a float.
FirebaseCrashlytics.getInstance().setCustomKey("float_key", 1.0f);

// Set a key to a double.
FirebaseCrashlytics.getInstance().setCustomKey("double_key", 1.0);
Kotlin
// Set a key to a string.
FirebaseCrashlytics.getInstance().setCustomKey("str_key", "hello")

// Set a key to a boolean.
FirebaseCrashlytics.getInstance().setCustomKey("bool_key", true)

// Set a key to an int.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1)

// Set a key to an long.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1L)

// Set a key to a float.
FirebaseCrashlytics.getInstance().setCustomKey("float_key", 1.0f)

// Set a key to a double.
FirebaseCrashlytics.getInstance().setCustomKey("double_key", 1.0)

Sie können den Wert eines vorhandenen Schlüssels auch ändern, indem Sie den Schlüssel aufrufen und auf einen anderen Wert setzen. Beispielsweise:

Java
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 50);

// Set int_key from 50 to 100.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 100);
Kotlin
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 50)

// Set int_key from 50 to 100.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 100)

Fügen Sie benutzerdefinierte Protokollnachrichten hinzu

Um sich mehr Kontext für die Ereignisse zu verschaffen, die zu einem Absturz führen, können Sie Ihrer App benutzerdefinierte Crashlytics-Protokolle hinzufügen. Crashlytics ordnet die Protokolle Ihren Absturzdaten zu und zeigt sie auf der Seite Crashlytics der Firebase-Konsole auf der Registerkarte Protokolle an .

Verwenden Sie das log , um Probleme zu lokalisieren. Beispielsweise:

Java

FirebaseCrashlytics.getInstance().log("Higgs-Boson detected! Bailing out");

Kotlin + KTX

FirebaseCrashlytics.getInstance().log("Higgs-Boson detected! Bailing out")

Legen Sie Benutzer-IDs fest

Um ein Problem zu diagnostizieren, ist es oft hilfreich zu wissen, welcher Ihrer Benutzer einen bestimmten Absturz hatte. Crashlytics bietet eine Möglichkeit, Benutzer in Ihren Absturzberichten anonym zu identifizieren.

Um Ihren Berichten Benutzer-IDs hinzuzufügen, weisen Sie jedem Benutzer eine eindeutige Kennung in Form einer ID-Nummer, eines Tokens oder eines Hash-Werts zu:

Java

FirebaseCrashlytics.getInstance().setUserId("12345");

Kotlin + KTX

FirebaseCrashlytics.getInstance().setUserId("12345")

Wenn Sie jemals eine Benutzerkennung löschen müssen, nachdem Sie sie festgelegt haben, setzen Sie den Wert auf eine leere Zeichenfolge zurück. Durch das Löschen einer Benutzerkennung werden vorhandene Crashlytics-Datensätze nicht entfernt. Wenn Sie Datensätze löschen müssen, die einer Benutzer-ID zugeordnet sind, wenden Sie sich an den Firebase-Support.

Nicht schwerwiegende Ausnahmen melden

Mit Crashlytics können Sie nicht nur automatisch Abstürze Ihrer App melden, sondern auch nicht schwerwiegende Ausnahmen aufzeichnen und diese beim nächsten Start Ihrer App an Sie senden.

Verwenden Sie die recordException Methode, um nicht schwerwiegende Ausnahmen in den catch Blöcken Ihrer App aufzuzeichnen. Beispielsweise:

Java

try {
    methodThatThrows();
} catch (Exception e) {
    FirebaseCrashlytics.getInstance().recordException(e);
    // ...handle the exception.
}

Kotlin + KTX

try {
    methodThatThrows()
} catch (e: Exception) {
    FirebaseCrashlytics.getInstance().recordException(e)
    // ...handle the exception.
}
Warnung: Wenn Sie einen eindeutigen Wert (z. B. eine Benutzer-ID oder einen Zeitstempel) in Ihre Ausnahmemeldung aufnehmen möchten, verwenden Sie einen benutzerdefinierten Schlüssel, anstatt den Wert direkt in die Ausnahmemeldung einzufügen. Das direkte Hinzufügen von Werten kann zu mehreren Problemen führen und dazu führen, dass Crashlytics Berichtsfehler in Ihrer App begrenzt.

Alle aufgezeichneten Ausnahmen werden in der Firebase-Konsole als nicht schwerwiegende Probleme angezeigt. Die Problemübersicht enthält alle Statusinformationen, die Sie normalerweise bei Abstürzen erhalten, sowie Aufschlüsselungen nach Android-Version und Hardwaregerät.

Crashlytics verarbeitet Ausnahmen in einem dedizierten Hintergrundthread, um die Auswirkungen auf die Leistung Ihrer App zu minimieren. Um den Netzwerkverkehr Ihrer Benutzer zu reduzieren, stapelt Crashlytics protokollierte Ausnahmen zusammen und sendet sie beim nächsten Start der App.

Aktivieren Sie die Opt-In-Berichterstellung

Standardmäßig sammelt Crashlytics automatisch Absturzberichte für alle Benutzer Ihrer App. Um Benutzern mehr Kontrolle über die von ihnen gesendeten Daten zu geben, können Sie die Opt-In-Berichterstellung für Ihre Benutzer aktivieren, indem Sie die automatische Erfassung deaktivieren und Crashlytics nur für ausgewählte Benutzer initialisieren:

  1. AndroidManifest.xml im application Ihrer AndroidManifest.xml Datei ein meta-data Tag hinzu, um die automatische Erfassung zu AndroidManifest.xml :

     <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
     
  2. Aktivieren Sie die Erfassung für ausgewählte Benutzer, indem Sie zur Laufzeit die Überschreibung der Crashlytics-Datenerfassung aufrufen. Der Überschreibungswert bleibt bei allen Starts Ihrer App erhalten, sodass Crashlytics automatisch Berichte erfassen kann. Übergeben Sie false als Überschreibungswert, um die automatische Absturzberichterstattung zu deaktivieren. Bei der Einstellung false wird der neue Wert erst beim nächsten Ausführen der App angewendet.

    Java

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);

    Kotlin + KTX

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true)

Verwalten von Crash Insights-Daten

Crash Insights hilft Ihnen bei der Lösung von Problemen, indem Sie Ihre anonymisierten Stack-Traces mit den Traces anderer Firebase-Apps vergleichen und Sie wissen lassen, ob Ihr Problem Teil eines größeren Trends ist. Für viele Probleme bietet Crash Insights sogar Ressourcen, mit denen Sie den Absturz beheben können.

Crash Insights verwendet aggregierte Crash-Daten, um allgemeine Stabilitätstrends zu identifizieren. Wenn Sie die Daten Ihrer App nicht freigeben möchten, können Sie Crash Insights im Menü Crash Insights oben in Ihrer Crashlytics-Problemliste in der Firebase-Konsole deaktivieren.