Crash-rapportage met Crashlytics

In Android is de kans groot dat uw app crasht, zelfs nadat u deze handmatig en automatisch hebt getest. Dit kan te wijten zijn aan factoren zoals incompatibiliteit met verschillende API-niveaus, schermformaten, telefoongeheugen, beschikbaarheid van hardwaresensors en aanpassingen van leveranciers aan hun individuele apparaten. Crashlytics helpt u deze problemen te diagnosticeren.

Crashes maken uw gebruikers verdrietig en boos. Ze willen misschien zelfs de app verwijderen als dit vaak gebeurt. Geef uw app een slechte beoordeling, geef negatieve feedback over de Play Store en installeer vervolgens de app van uw concurrent! In deze al drukke en competitieve app-markt is het belangrijk dat uw gebruikers tevreden zijn voor het succes van uw app.

Het is vrij onmogelijk voor je app om geen crashes te hebben, maar het is erg belangrijk om je crashes tot een minimum te beperken. Tijdens de ontwikkeling en het testen is een bepaalde crash mogelijk niet tegengekomen, maar tijdens de productie wanneer uw gebruikers deze actief gebruiken, zult u crashes gaan zien. Het gebruik van een robuuste en krachtige crashrapportage-oplossing is essentieel om informatie te verzamelen over uw app-crashes en om u inzicht te geven in hoe u het probleem kunt oplossen om uw gebruikers tevreden te houden. 

In deze zelfstudie laat ik je zien hoe je Crashlytics kunt gebruiken, een gratis en krachtige, maar toch lichtgewicht crashrapportage-oplossing, die deel uitmaakt van de Fabric-set ontwikkelaarstools die onlangs door Google is aangeschaft. We maken een eenvoudige app die crasht wanneer op een knop wordt geklikt, zodat we met Crashlytics inzicht kunnen krijgen in de crash. 

1. Waarom Crashlytics gebruiken?

Hier zijn enkele redenen waarom u het misschien zou willen gebruiken: 

  • Eenvoudig in te stellen
  • Onbeperkt aantal apps, gebruikers en crashes 
  • Realtime meldingen
  • Realtime crashrapportage
  • Grondige crashanalyse
  • Volgen van uitzonderingen
  • Eenvoudig rapport over crashen delen
  • Bèta-app-distributie
  • Een gratis mobiele app om uw app onderweg te volgen en realtime waarschuwingen te ontvangen voor kritieke problemen
  • Gratis!

2. Maak een Android Studio-project

Allereerst, start Android Studio op en maak een nieuw project "CrashlyticsTutorial"met een lege activiteit genaamd Hoofdactiviteit.

3. Fabric Plugin installeren

U moet eerst een account bij Fabric hebben om Crashlytics in uw app te integreren. Dus vul de vereiste gegevens in en een bevestigingsmail zal naar u worden verzonden. 

U kunt kiezen om Fabric te integreren met uw project door de Android Studio-plug-in te downloaden, die de bestanden die nodig zijn voor de integratie automatisch wijzigt of door uw build.gradle het dossier. Voor deze zelfstudie gebruiken we de gemakkelijkste manier, namelijk de plug-in. 

Nadat u op de bevestigingslink hebt geklikt, wordt u begeleid om de plug-in te installeren:

Stap 1

Selecteer Android als het platform. 

Stap 2

Voor Mac-gebruikers: selecteer Voorkeuren ...  van de Android Studio / IntelliJ menu. Windows- en Linux-gebruikers: selecteren instellingen van de het dossier menu. 

Stap 3

kiezen plugins, Klik op de Door repositories bladeren knop en zoek naar "Stof voor Android".

Stap 4

Klik op de Installeren plugin-knop om de plug-in te downloaden en te installeren. 

4. Crashlytics integreren

Stap 1

Voer de inloggegevens in om de integratie van Crashlytics in uw Android Studio-project te starten. 

Stap 2

Selecteer het Android-project CrashlyticsTutorial en klik op de volgende knop. 

Stap 3

Fabric geeft een lijst van alle organisaties die u hebt geregistreerd, dus selecteer de organisatie waaraan u de app wilt koppelen en klik op de volgende knop.

Stap 4

Fabric zal dan alle kits vermelden. Omdat dit een Crashlytics-zelfstudie is, selecteert u Crashlytics en klik op de volgende knop. 

Stap 5

Klik op de Installeren knop. 

Fabric wil wijzigingen aanbrengen in uw bouwen.gradle, MainActivity.java en AndroidManifest.xml bestanden,dus klik op de Van toepassing zijn knop om de wijzigingen te laten plaatsvinden.  

Stap 6

Bouw en voer uw applicatie uit zodat we ervoor kunnen zorgen dat alles correct is geconfigureerd. Als uw app met succes is geconfigureerd, ontvangt u een e-mail die onmiddellijk wordt verzonden naar het e-mailadres waarmee u zich bij Fabric hebt aangemeld. 

5. Het dashboard bekijken

Nu Crashlytics met succes is geïntegreerd in ons project, bezoekt u het hoofddashboard om onze app te bekijken: CrashlyticsTutorial

Als u op een project klikt, wordt het Crashlytics-dashboard geopend, waarin de problemen worden vermeld die u tegenkomt. Tot nu toe hebben we er geen; later zullen we dit dashboard opnieuw bezoeken wanneer we opzettelijk een crash hebben gemaakt. 

In het Crashlytics-dashboard van het project krijgt u een algemeen overzicht van crashes. U kunt crashes filteren op app-versies, gebeurtenissen, dagen, status (open, gesloten of alles), apparaat, besturingssysteem of gebruikersactiviteit (hoewel de antwoordenset moet worden ingeschakeld om deze functie te gebruiken). U kunt ook het totale aantal crashes, niet-fatals, getroffen gebruikers en meer bekijken. 

De Answers-kit geeft u real-time statistieken over hoe uw app wordt gebruikt, inclusief actieve gebruikersnummers, sessielengte, stabiliteitsbeoordeling en retentie. 

6. Opzettelijk een crash maken

Het verschil tussen crashes en problemen begrijpen

Het verschil tussen crashes en problemen is dat Crashlytics soortgelijke crashes combineert tot problemen (bepaalde regels code die hetzelfde type crash lijken te veroorzaken). Als u bijvoorbeeld 100.000 crashes heeft gerapporteerd, kunnen deze mogelijk te wijten zijn aan slechts 60 problemen.

Laten we doelbewust een crash maken en het geregistreerde probleem bekijken op het dashboard. 

Maak een lay-out

Hier is de Hoofdactiviteit layout bestand:

  

De crashNow () Methode

Wijzig de Hoofdactiviteit klasse om het crashNow () methode, die een RuntimeException activeert wanneer op de knop wordt geklikt. 

pakket com.chikeandroid.crashlyticstutorial; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; importeer android.widget.Button; import com.crashlytics.android.Crashlytics; import io.fabric.sdk.android.Fabric; openbare klasse MainActivity breidt AppCompatActivity uit private Button mCrashNowButton; @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); Fabric.with (dit, nieuwe Crashlytics ()); setContentView (R.layout.activity_main); mCrashNowButton = (Button) findViewById (R.id.btn_crash_now); mCrashNowButton.setOnClickListener (nieuwe View.OnClickListener () @Override public void onClick (View view) crashNow (););  private void crashNow () gooi nieuwe RuntimeException ("This is a crash"); 

neerstorten!

Start de app en klik op de knop Nu crashen. 

7. Het Dashboard opnieuw bekijken

Na de geslaagde crash bezoekt u opnieuw het dashboard om het probleem te zien dat onmiddellijk werd vastgelegd. U ontvangt ook een e-mailmelding van Fabric over de crash. In het dashboard tot nu toe hebben we nu één probleem, één crash en één getroffen gebruiker. U kunt naar een specifiek probleem zoeken met de bestandsnaam, de methode, het regelnummer of de uitgifte-aantekeningen (alleen voor één periode).

Wanneer u op een probleem klikt, wordt er een pagina geopend met een gedetailleerd rapport over de crash. De pagina verzamelt alle vastgelopen crashes. 

De belangrijkste onderdelen van deze gebruikersinterface zijn als volgt:

1

De project- en pakketnaam, inclusief het regelnummer waar de crash plaatsvond

2

Recente crashes filteren

3

Het totale aantal crashes

4

Het totale aantal gebruikers dat door de crash is getroffen

5

Schakelen om het probleem te markeren als gesloten of open

6

Grafiek van het aantal ongevallen per dag

7

Knop om het probleem te delen via Twitter of met uw teamleden

8

Het percentage gecrashte apparaten met nabijheid geactiveerd

9

Het percentage crashes dat plaatsvond toen de app in focus was 

10

Het percentage gecrashte apparaten dat is geroot

11

Uitsplitsing van de modelnamen van gecrashte apparaten

12

Uitsplitsing van het besturingssysteem van gecrashte apparaten

13

Download het exception stack trace als een .txt-bestand

14

Een uitbreidbaar beeld voor het stacktracé

15

Bekijk details van elk afzonderlijk crashrapport.

Op deze pagina kunt u ook notities bekijken en opmerkingen over elke crash schrijven.

8. Andere Crashlytics-functies

Fabric mobiele app

Fabric heeft ook een gratis mobiele app beschikbaar in de Google Play Store. Met de mobiele app krijgt u onmiddellijk een pushmelding wanneer er een kritieke crash plaatsvindt, evenals enkele gegevens die inzicht geven in het probleem: een uitsplitsing van getroffen apparaten en platforms, het volledige stacktracé, het aantal getroffen gebruikers dat is getroffen , opmerkingen over een probleem en een optie om het probleem met teamleden te delen. Al deze gegevens worden in realtime bijgewerkt.  

Log Caught Exceptions

Crashlytics stelt je ook in staat uitzonderingen vast te leggen die zijn gevangen in a vangst blokkeren met Crashlytics.logException (Uitzondering).

probeer myMethodThatThrows ();  catch (Uitzondering e) Crashlytics.logException (e); // behandel hier uw uitzondering! 

Alle geregistreerde uitzonderingen verschijnen als "niet-fatale" problemen in het Fabric-dashboard. Crashlytics verwerkt uitzonderingen op een speciale achtergrondthread, dus het loggen van een uitzondering blokkeert de gebruikersinterface van de app niet en de gevolgen voor de prestaties van uw app zijn klein. 

Aangepaste registratie

Wanneer u een uitzondering registreert, kunt u een aangepast logbericht maken dat is gekoppeld aan uw crashgegevens en dit wordt weergegeven op het Crashlytics-dashboard bij die specifieke crash. 

Crashlytics.log (int-prioriteit, String-tag, String-msg);

Naast dat het in uw rapport wordt weergegeven, wordt het ook toegevoegd aan de LogCat van Android. Om te voorkomen dat dit gebeurt, gebruik in plaats daarvan:

Crashlytics.log (reeksbericht);

Zoals in het onderstaande voorbeeld:

private void crashNow () Crashlytics.log ("Mijn logbericht"); gooi nieuwe RuntimeException ("Dit is een crash"); 

Identificeer gebruikers uniek

Om de eindgebruiker van uw toepassing op het dashboard eenduidig ​​te identificeren voor eenvoudig debuggen, heeft Crashlytics de onderstaande methoden: 

Crashlytics.setUserIdentifier ( "12345"); Crashlytics.setUserEmail ( "[email protected]"); Crashlytics.setUserName ("Testgebruiker");

Gebruik Crashlytics.setUserIdentifier om een ​​ID-nummer, token of hash-waarde te verstrekken die de eindgebruiker van uw toepassing op unieke wijze identificeert zonder persoonlijke gegevens te onthullen of te verzenden.

Beta-distributie 

Als je je app wilt beta-verspreiden aan een aantal gebruikers voor testen en feedback wilt krijgen voordat je eindelijk je app openbaar maakt, heeft Crashlytics een erg handige gratis tool genaamd Beta. Ik zal hier hier niet ingaan, maar bekijk de officiële documenten voor meer informatie. 

Crashlytics uitschakelen voor debug-builds

U kunt Crashlytics uitschakelen voor debug-builds, waardoor uw debug-buildproces wordt versneld. 

Voeg eerst dit toe aan uw build.gradle het dossier:

buildTypes ... debug // Disable fabric build ID generation for debug builds ext.enableCrashlytics = false

Schakel vervolgens de Crashlytics Kit tijdens runtime uit.

... @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); // Crashlytics instellen, uitgeschakeld voor debug-builds Crashlytics crashlyticsKit = nieuwe Crashlytics.Builder () .core (nieuwe CrashlyticsCore.Builder (). Disabled (BuildConfig.DEBUG) .build ()) .build (); Fabric.with (this, crashlyticsKit); setContentView (R.layout.activity_main); 

Conclusie

Crashlytics is zeer krachtig en nuttig voor effectieve crashrapportage. In deze tutorial leerde je:

  • hoe je Crashlytics kunt integreren in je Android-project
  • hoe het Crashlytics-dashboard u inzicht kan geven in een probleem
  • hoe gevangen uitzonderingen te registreren
  • hoe aangepaste logs te schrijven
  • hoe u uw gebruikers op unieke wijze kunt identificeren voor eenvoudig debuggen
  • hoe Crashlytics uit te schakelen voor debug-builds

Voor meer informatie over Crashlytics kunt u de officiële documentatie raadplegen. U kunt ook enkele van onze andere zelfstudies over cloudgebaseerde services voor Android-ontwikkeling bekijken.