Android
Crash Reporting Tools
Ricerca…
Osservazioni
Il wiki completo migliore è disponibile qui in github .
Tessuto - Crashlytics
Fabric è una piattaforma mobile modulare che fornisce kit utili che puoi mixare per creare la tua applicazione. Crashlytics è uno strumento di segnalazione di arresti anomali fornito da Fabric che consente di monitorare e monitorare le applicazioni in dettaglio.
Come configurare Fabric-Crashlytics
Passaggio 1: modifica il tuo build.gradle
:
Aggiungi il repository plugin e il plugin gradle:
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.+'
}
}
Applica il plugin:
apply plugin: 'com.android.application'
//Put Fabric plugin after Android plugin
apply plugin: 'io.fabric'
Aggiungi il repository Fabric:
repositories {
maven { url 'https://maven.fabric.io/public' }
}
Aggiungi il kit Crashlyrics:
dependencies {
compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
transitive = true;
}
}
Passaggio 2: aggiungere la chiave API e l'autorizzazione INTERNET 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>
Passaggio 3: avviare il kit in fase di esecuzione nel codice utente, ad esempio:
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);
}
}
Passaggio 4: crea un progetto. Per costruire ed eseguire:
Utilizzando il plug-in IDE Fabric
I kit possono essere installati utilizzando il plug-in Fabric IDE per Android Studio o IntelliJ seguendo questo link.
Dopo aver installato il plug-in, riavvia Android Studio e accedi con il tuo account utilizzando Android Studio .
(tasto CTRL + L
> CTRL + L
)
Quindi mostrerà i progetti che hai / il progetto che hai aperto, seleziona quello di cui hai bisogno e fai clic su Avanti ... successivo.
Seleziona il kit che vorresti aggiungere, per il suo esempio è Crashlytics :
Quindi premi Install
. Non è necessario aggiungerlo manualmente questa volta come sopra il plugin gradle , invece verrà creato per te.
Fatto!
Segnalazione di crash con ACRA
Passaggio 1: aggiungere la dipendenza dell'ultimo ACRA AAR al gradle dell'applicazione (build.gradle).
Passaggio 2: nella classe dell'applicazione (la classe che estende l'applicazione, se non la crea) aggiungere un'annotazione @ReportsCrashes
e sovrascrivere il metodo attachBaseContext()
.
Passaggio 3: inizializzare la classe ACRA nella classe dell'applicazione
@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);
}
}
Dove AUTH_USERNAME e AUTH_PASSWORD sono le credenziali dei tuoi backend desiderati.
Passaggio 4: definire la classe dell'applicazione in AndroidManifest.xml
<application
android:name=".MyApplication">
<service></service>
<activity></activity>
<receiver></receiver>
</application>
Passaggio 5: assicurarsi di disporre dell'autorizzazione internet
per ricevere il rapporto dall'applicazione arrestata
<uses-permission android:name="android.permission.INTERNET"/>
Nel caso in cui si desideri inviare il rapporto silenzioso al back-end, utilizzare il seguente metodo per ottenerlo.
ACRA.getErrorReporter().handleSilentException(e);
Forza un crash di prova con tessuto
Aggiungi un pulsante che puoi toccare per attivare un arresto anomalo. Incolla questo codice nel layout in cui desideri che venga visualizzato il pulsante.
<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" />
Lancia una RuntimeException
public void forceCrash(View view) {
throw new RuntimeException("This is a crash");
}
Esegui la tua app e tocca il nuovo pulsante per causare un arresto anomalo. In un minuto o due dovresti essere in grado di vedere l'incidente sul cruscotto Crashlytics così come riceverai una mail.
Cattura gli arresti anomali con Sherlock
Sherlock cattura tutti i tuoi arresti anomali e li segnala come notifica. Quando si tocca la notifica, si apre un'attività con tutti i dettagli del crash insieme alle informazioni su dispositivo e applicazione
Come integrare Sherlock con la tua applicazione?
Devi solo aggiungere Sherlock come dipendenza gradle nel tuo progetto.
dependencies {
compile('com.github.ajitsing:sherlock:1.0.1@aar') {
transitive = true
}
}
Dopo aver sincronizzato il tuo studio Android, inizializza Sherlock nella tua classe Application.
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);
}
}
Questo è tutto ciò che devi fare. Anche Sherlock fa molto di più che segnalare un incidente. Per controllare tutte le sue caratteristiche date un'occhiata a questo articolo .
dimostrazione