Android
Narzędzia do raportowania awarii
Szukaj…
Uwagi
Najlepsza kompletna wiki jest dostępna tutaj w github .
Materiał - Crashlytics
Fabric to modułowa platforma mobilna, która zapewnia przydatne zestawy, które można łączyć w celu zbudowania aplikacji. Crashlytics to narzędzie do raportowania awarii i problemów dostarczane przez Fabric, które pozwala szczegółowo śledzić i monitorować aplikacje.
Jak skonfigurować Crashlytics tkaniny
Krok 1: Zmień swój build.gradle
:
Dodaj repozytorium wtyczek i wtyczkę 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.+'
}
}
Zastosuj wtyczkę:
apply plugin: 'com.android.application'
//Put Fabric plugin after Android plugin
apply plugin: 'io.fabric'
Dodaj repozytorium Fabric:
repositories {
maven { url 'https://maven.fabric.io/public' }
}
Dodaj zestaw Crashlyrics:
dependencies {
compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
transitive = true;
}
}
Krok 2: Dodaj swój klucz API i uprawnienia INTERNET w 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>
Krok 3: Zainicjuj zestaw w środowisku wykonawczym w swoim kodzie, na przykład:
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);
}
}
Krok 4: Zbuduj projekt. Aby zbudować i uruchomić:
Korzystanie z wtyczki Fabric IDE
Zestawy można zainstalować za pomocą wtyczki Fabric IDE dla Androida Studio lub IntelliJ po tym linku.
Po zainstalowaniu wtyczki uruchom ponownie Android Studio i zaloguj się na swoje konto za pomocą Android Studio .
(klawisz skrótu> CTRL + L
)
Następnie pokaże projekty, które masz / projekt, który otworzyłeś, wybierz ten, którego potrzebujesz i kliknij przycisk Dalej .. dalej.
Wybierz zestaw, który chcesz dodać, na przykład Crashlytics :
Następnie kliknij Install
. Tym razem nie musisz dodawać go ręcznie, tak jak powyższej wtyczki , a zamiast tego kompilacja zostanie stworzona dla Ciebie.
Gotowy!
Raportowanie awarii z ACRA
Krok 1: Dodaj zależność najnowszego ARA ACRA do klasy aplikacji (build.gradle).
Krok 2: W swojej klasie aplikacji (klasie, która rozszerza aplikację; jeśli nie, utwórz ją) Dodaj adnotację @ReportsCrashes
i zastąp attachBaseContext()
.
Krok 3: Zainicjuj klasę ACRA w swojej klasie aplikacji
@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);
}
}
Gdzie AUTH_USERNAME i AUTH_PASSWORD są poświadczeniami żądanych backendów .
Krok 4: Zdefiniuj klasę aplikacji w AndroidManifest.xml
<application
android:name=".MyApplication">
<service></service>
<activity></activity>
<receiver></receiver>
</application>
Krok 5: Upewnij się, że masz uprawnienia internet
aby otrzymać raport z aplikacji, która uległa awarii
<uses-permission android:name="android.permission.INTERNET"/>
Jeśli chcesz wysłać cichy raport do wewnętrznej bazy danych, skorzystaj z poniższej metody, aby go osiągnąć.
ACRA.getErrorReporter().handleSilentException(e);
Wymuś awarię testową za pomocą tkaniny
Dodaj przycisk, którego możesz dotknąć, aby spowodować awarię. Wklej ten kod do swojego układu, w którym ma się pojawiać przycisk.
<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" />
Zgłoszenie wyjątku RuntimeException
public void forceCrash(View view) {
throw new RuntimeException("This is a crash");
}
Uruchom aplikację i dotknij nowego przycisku, aby spowodować awarię. Za minutę lub dwie powinieneś być w stanie zobaczyć awarię na pulpicie Crashlytics, a także otrzymasz wiadomość.
Przechwytywanie awarii przy użyciu Sherlocka
Sherlock rejestruje wszystkie awarie i zgłasza je jako powiadomienie. Po dotknięciu powiadomienia otwiera ono działanie ze wszystkimi szczegółami awarii oraz informacjami o urządzeniu i aplikacji
Jak zintegrować Sherlocka z aplikacją?
Musisz tylko dodać Sherlocka jako zależność stopniową w swoim projekcie.
dependencies {
compile('com.github.ajitsing:sherlock:1.0.1@aar') {
transitive = true
}
}
Po zsynchronizowaniu studia Android zainicjuj Sherlocka w swojej klasie aplikacji.
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);
}
}
To wszystko, co musisz zrobić. Również Sherlock robi znacznie więcej niż tylko zgłaszanie awarii. Aby sprawdzić wszystkie jego funkcje, zapoznaj się z tym artykułem .
Próbny