Android
クラッシュレポートツール
サーチ…
備考
最高の完全なwikiはgithubでここにあります。
ファブリック - クラッシュ・スティックス
Fabricは、アプリケーションを構築するために組み合わせることができる有用なキットを提供するモジュール式モバイルプラットフォームです。 Crashlyticsは、アプリケーションを詳細に追跡および監視できるようにする、Fabricによって提供されるクラッシュおよび問題のレポートツールです。
Fabric-Crashlyticsの設定方法
ステップ1: build.gradle
変更する:
プラグインレポと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.+'
}
}
プラグインを適用する:
apply plugin: 'com.android.application'
//Put Fabric plugin after Android plugin
apply plugin: 'io.fabric'
Fabric Repoを追加します。
repositories {
maven { url 'https://maven.fabric.io/public' }
}
Crashlyricsキットを追加する:
dependencies {
compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
transitive = true;
}
}
手順2: AndroidManifest.xml
APIキーとインターネットアクセス許可を追加する
<?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>
ステップ3:あなたのコードで実行時にキットを初期化します。例えば:
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);
}
}
ステップ4:プロジェクトをビルドします。ビルドして実行するには:
Fabric IDEプラグインの使用
キットは、 このリンクに続いてAndroid StudioまたはIntelliJ用のFabric IDEプラグインを使用してインストールできます。
プラグインをインストールしたら、Androidのメーカーを再起動するとAndroid Studioを使用してアカウントにログインします。
(ショートキー> CTRL + L
)
次に、あなたが持っているプロジェクト/あなたが開いたプロジェクトを表示し、必要なプロジェクトを選択して、次へをクリックします。
追加したいキットを選択してください。その例はCrashlyticsです:
その後、 Install
。今度はgradleプラグインのように手動で追加する必要はありませんが、代わりにあなたのために構築されます。
完了!
ACRAによるクラッシュレポート
ステップ1:最新のACRA AARの依存関係をアプリケーションのgradle(build.gradle)に追加します。
ステップ2:アプリケーションクラス(Applicationを拡張するクラス、それを作成しない場合) @ReportsCrashes
アノテーションを追加し、 attachBaseContext()
メソッドをオーバーライドします。
手順3:アプリケーションクラスでACRAクラスを初期化する
@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);
}
}
AUTH_USERNAMEとAUTH_PASSWORDは、必要なバックエンドの資格です。
ステップ4:AndroidManifest.xmlにApplicationクラスを定義する
<application
android:name=".MyApplication">
<service></service>
<activity></activity>
<receiver></receiver>
</application>
ステップ5:クラッシュしたアプリケーションからレポートを受け取るinternet
アクセス権があることを確認する
<uses-permission android:name="android.permission.INTERNET"/>
サイレントレポートをバックエンドに送信する場合は、以下の方法を使用して達成してください。
ACRA.getErrorReporter().handleSilentException(e);
ファブリックでテストクラッシュを強制する
タップしてクラッシュを引き起こすことができるボタンを追加します。このコードをレイアウトに貼り付け、ボタンを表示します。
<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" />
RuntimeExceptionをスローする
public void forceCrash(View view) {
throw new RuntimeException("This is a crash");
}
アプリを実行して新しいボタンをタップすると、クラッシュする可能性があります。 1〜2分で、Crashlyticsダッシュボードでクラッシュを確認できるだけでなく、メールを受け取ることができます。
Sherlockを使用してクラッシュをキャプチャする
Sherlockはすべてのクラッシュを捕捉し、通知として報告します。通知をタップすると、クラッシュの詳細がすべて表示され、デバイスとアプリケーションの情報が表示されます
あなたのアプリケーションにSherlockを統合するには?
あなたはあなたのプロジェクトにgradleの依存関係としてSherlockを追加するだけです。
dependencies {
compile('com.github.ajitsing:sherlock:1.0.1@aar') {
transitive = true
}
}
Androidスタジオを同期した後、アプリケーションクラスでSherlockを初期化します。
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);
}
}
それはあなたがする必要があることすべて。また、Sherlockはクラッシュを報告するだけではありません。すべての機能をチェックアウトするには、この記事をご覧ください 。
デモ