Android
Crash Reporting Tools
Zoeken…
Opmerkingen
De beste complete wiki is hier beschikbaar in github .
Fabric - Crashlytics
Fabric is een modulair mobiel platform dat handige kits biedt die u kunt mixen om uw applicatie te bouwen. Crashlytics is een crash- en probleemrapportagetool van Fabric waarmee u uw applicaties in detail kunt volgen en volgen.
Fabric-Crashlytics configureren
Stap 1: Wijzig uw build.gradle
:
Voeg de repo van de plug-in en de gradle-plug-in toe:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
// The Fabric Gradle plugin uses an open ended version to react
// quickly to Android tooling updates
classpath 'io.fabric.tools:gradle:1.+'
}
}
Installeer de plug-in:
apply plugin: 'com.android.application'
//Put Fabric plugin after Android plugin
apply plugin: 'io.fabric'
Voeg de Fabric-repo toe:
repositories {
maven { url 'https://maven.fabric.io/public' }
}
Voeg de Crashlyrics Kit toe:
dependencies {
compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
transitive = true;
}
}
Stap 2: voeg uw API-sleutel en de INTERNET- machtiging in AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
... >
<meta-data
android:name="io.fabric.ApiKey"
android:value="25eeca3bb31cd41577e097cabd1ab9eee9da151d"
/>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
Stap 3: Initialiseer de kit tijdens runtime in uw code, bijvoorbeeld:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Init the KIT
Fabric.with(this, new Crashlytics());
setContentView(R.layout.activity_main);
}
}
Stap 4: Bouw project. Bouwen en uitvoeren:
De Fabric IDE-plug-in gebruiken
Kits kunnen worden geïnstalleerd met behulp van de Fabric IDE-plug-in voor Android Studio of IntelliJ via deze link.
Na het installeren van de plug-in, start u Android Studio opnieuw op en logt u in met uw account met behulp van Android Studio .
(sneltoets> CTRL + L
)
Vervolgens worden de projecten weergegeven die u hebt / het project dat u hebt geopend, selecteert u de projecten die u nodig hebt en klikt u op Volgende ... volgende.
Selecteer de kit die u wilt toevoegen, bijvoorbeeld Crashlytics :
Klik vervolgens op Install
. Je hoeft het deze keer niet handmatig toe te voegen, zoals de bovenstaande gradle-plug-in , maar in plaats daarvan wordt het voor je gebouwd.
Gedaan!
Crashrapportage met ACRA
Stap 1: voeg de afhankelijkheid van de nieuwste ACRA AAR toe aan uw applicatiegradle (build.gradle).
Stap 2: In uw toepassingsklasse (de klasse die de toepassing uitbreidt; als deze niet is gemaakt) Voeg een annotatie @ReportsCrashes
en overschrijf de methode attachBaseContext()
.
Stap 3: Initialiseer de ACRA-klasse in uw toepassingsklasse
@ReportsCrashes(
formUri = "Your choice of backend",
reportType = REPORT_TYPES(JSON/FORM),
httpMethod = HTTP_METHOD(POST/PUT),
formUriBasicAuthLogin = "AUTH_USERNAME",
formUriBasicAuthPassword = "AUTH_PASSWORD,
customReportContent = {
ReportField.USER_APP_START_DATE,
ReportField.USER_CRASH_DATE,
ReportField.APP_VERSION_CODE,
ReportField.APP_VERSION_NAME,
ReportField.ANDROID_VERSION,
ReportField.DEVICE_ID,
ReportField.BUILD,
ReportField.BRAND,
ReportField.DEVICE_FEATURES,
ReportField.PACKAGE_NAME,
ReportField.REPORT_ID,
ReportField.STACK_TRACE,
},
mode = NOTIFICATION_TYPE(TOAST,DIALOG,NOTIFICATION)
resToastText = R.string.crash_text_toast)
public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
// Initialization of ACRA
ACRA.init(this);
}
}
Waar AUTH_USERNAME en AUTH_PASSWORD de referenties van uw gewenste backends zijn .
Stap 4: Definieer de toepassingsklasse in AndroidManifest.xml
<application
android:name=".MyApplication">
<service></service>
<activity></activity>
<receiver></receiver>
</application>
Stap 5: zorg ervoor dat u internet
hebt om het rapport van de gecrashte toepassing te ontvangen
<uses-permission android:name="android.permission.INTERNET"/>
Als u het stille rapport naar de backend wilt verzenden, gebruikt u gewoon de onderstaande methode om dit te bereiken.
ACRA.getErrorReporter().handleSilentException(e);
Forceer een testcrash met stof
Voeg een knop toe waarop u kunt tikken om een crash te activeren. Plak deze code in uw lay-out waar u de knop wilt laten verschijnen.
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Force Crash!"
android:onClick="forceCrash"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
Gooi een RuntimeException
public void forceCrash(View view) {
throw new RuntimeException("This is a crash");
}
Start uw app en tik op de nieuwe knop om een crash te veroorzaken. Binnen een minuut of twee zou je de crash op je Crashlytics-dashboard moeten kunnen zien en krijg je een e-mail.
Leg crashes vast met Sherlock
Sherlock vangt al je crashes op en meldt ze als een melding. Wanneer u op de melding tikt, wordt een activiteit geopend met alle crashdetails samen met apparaat- en applicatie-informatie
Hoe Sherlock te integreren met uw applicatie?
U hoeft alleen Sherlock toe te voegen als een geleidelijke afhankelijkheid in uw project.
dependencies {
compile('com.github.ajitsing:sherlock:1.0.1@aar') {
transitive = true
}
}
Na het synchroniseren van je Android-studio, initialiseer Sherlock in je toepassingsklasse.
package com.singhajit.login;
import android.app.Application;
import com.singhajit.sherlock.core.Sherlock;
public class SampleApp extends Application {
@Override
public void onCreate() {
super.onCreate();
Sherlock.init(this);
}
}
Dat is alles wat u hoeft te doen. Ook doet Sherlock veel meer dan alleen een crash melden. Lees dit artikel om alle functies te bekijken.
demonstratie