Firebase Crashlytics ist ein Tool, das Absturzberichte in Echtzeit erstellt und Ihnen so hilft, Stabilitätsprobleme in Ihrer App zu verwalten. Crashlytics spart Ihnen Zeit bei der Fehlerbehebung, indem Abstürze intelligent gruppiert und die Umstände hervorgehoben werden, die zu ihnen führen.
In dieser Anleitung wird beschrieben, wie Sie Crashlytics in Ihr Android Studio-Projekt einbinden, damit Sie Anzeigenantwort-IDs protokollieren können. AdMob
Schritt 1:Firebase zu einer Android-Anwendung hinzufügen
Wenn Sie die Protokollierung mit Firebase in einer neuen App testen möchten, können Sie die Google Mobile Ads SDK Beispiele für Android Repository auf GitHub herunterladen oder klonen. In dieser Anleitung wird das Bannerbeispiel verwendet.
Wenn Sie bereits eine App haben, können Sie mit dem Paketnamen Ihrer App mit den anderen Schritten fortfahren. Die gleichen Schritte können mit geringfügigen Anpassungen auch auf andere Beispiele im Repository angewendet werden.
Um Firebase Crashlytics zu verwenden, müssen Sie ein Firebase-Projekt erstellen und Ihre App hinzufügen. Erstellen Sie ein Firebase-Projekt, wenn Sie das noch nicht getan haben. Stellen Sie sicher, dass Sie Ihre App dafür registrieren.
Klicken Sie auf der Crashlytics-Seite der Firebase Console auf Crashlytics einrichten.
Klicken Sie auf dem angezeigten Bildschirm auf Nein > Neue Firebase-App einrichten.

Fügen Sie in Ihrer Datei „build.gradle“ die Abhängigkeiten für Google Analytics, Fabric und Crashlytics hinzu.
app/build.gradle
apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' // Add the Fabric plugin apply plugin: 'io.fabric' dependencies { // ... // Add Google Mobile Ads SDK implementation 'com.google.android.gms:play-services-ads:25.1.0' // Add the Firebase Crashlytics dependency. implementation 'com.google.firebase:firebase-crashlytics:20.0.4' }
project/build.gradle
buildscript { repositories { // ... // Add Google's Maven repository. google() } dependencies { // ... classpath 'com.google.gms:google-services:4.4.4' // Add the Fabric Crashlytics plugin. classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.6' } } allprojects { // ... repositories { // Check that Google's Maven repository is included (if not, add it). google() // ... } }Erstellen Sie Ihre App und führen Sie sie aus, um sicherzustellen, dass Crashlytics richtig konfiguriert ist. Wenn das erfolgreich war, können Sie auf das Crashlytics-Dashboard zugreifen.

(Optional) Einrichtung testen
Wenn Sie eine Absturz schaltfläche hinzufügen, können Sie einen Absturz erzwingen, indem Sie bei jedem Drücken der Schaltfläche einen App-Absturz verursachen.
Hier ein Beispiel, wie Sie der Methode onCreate() einer Activity eine Absturzschaltfläche hinzufügen:
MainActivity (Auszug)
Java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view); // Start loading the ad in the background. adView.loadAd(new AdRequest.Builder().build()); // Add a crash button. Button crashButton = new Button(this); crashButton.setText("Crash!"); crashButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { throw new RuntimeException("Test Crash"); // Force a crash } }); addContentView(crashButton, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); }
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view) // Start loading the ad in the background. adView.loadAd(AdRequest.Builder().build()) // Add a crash button. val crashButton = Button(this) crashButton.text = "Crash!" crashButton.setOnClickListener { throw RuntimeException("Test Crash") // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)) }
Erstellen Sie in Android Studio Ihre App und führen Sie sie auf einem Emulator oder einem verbundenen Gerät aus. Nachdem die App geladen wurde, können Sie auf die Schaltfläche Absturz klicken. Starten Sie die App auf dem Gerät oder in Android Studio neu, damit das Absturzprotokoll in Crashlytics hochgeladen wird.
Schritt 2:Anzeigenantwort-ID protokollieren
Wenn Sie mehrere Anzeigen laden und zu unterschiedlichen Zeiten präsentieren, empfiehlt es sich, jede Anzeigenantwort-ID mit einem separaten Schlüssel zu protokollieren. In dieser Anleitung wird beispielsweise nur eine Banneranzeige verwendet. Daher protokollieren wir die Anzeigenantwort-ID im folgenden Snippet als Schlüssel banner_ad_response_id. Sie können in Firebase Crashlytics mehrere benutzerdefinierte Schlüssel / Wert-Paare für verschiedene Anzeigentypen und Anzeigenereignisse erstellen (siehe
AdListener für
den Lebenszyklus von Anzeigen). Weitere Informationen zur benutzerdefinierten Protokollierung finden Sie unter Benutzerdefinierte Absturzberichte in Firebase Crashlytics.
Fügen Sie den folgenden Code zu MyActivity.java hinzu. Dabei wird die
FirebaseCrashlytics.setCustomKey()
Funktion in der onAdLoaded() Callback-Funktion verwendet, um sicherzustellen, dass die Anzeige
geladen wurde, bevor getResponseInfo() aufgerufen wird.
Java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view); adView.setAdListener(new AdListener() { @Override public void onAdLoaded() { String adResponseId = adView.getResponseInfo().getResponseId(); FirebaseCrashlytics.getInstance().setCustomKey( "banner_ad_response_id", adResponseId); } }); // Start loading the ad in the background. adView.loadAd(new AdRequest.Builder().build()); // Add a crash button. Button crashButton = new Button(this); crashButton.setText("Crash!"); crashButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { throw new RuntimeException("Test Crash"); // Force a crash } }); addContentView(crashButton, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); }
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in // values/strings.xml. adView = findViewById(R.id.ad_view) adView.adListener = object : AdListener() { override fun onAdLoaded() { mAdView.responseInfo?.responseId?.let { adResponseId -> FirebaseCrashlytics.getInstance().setCustomKey( "banner_ad_response_id", adResponseId) } } } // Start loading the ad in the background. adView.loadAd(AdRequest.Builder().build()) // Add a crash button. val crashButton = Button(this) crashButton.text = "Crash!" crashButton.setOnClickListener { throw RuntimeException("Test Crash") // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)) }
Glückwunsch! Sie sehen jetzt die letzte banner_ad_response_id im Schlüsselbereich der Absturzsitzungen auf Ihrem Crashlytics-Dashboard. Es kann bis zu einer Stunde dauern, bis einige Schlüssel auf dem Dashboard sichtbar sind.
