自動でエラーログをDeveloperへ送信してくれる
Application Crash Report for Android
を導入したいと思います。
これを導入する事で、Google Docsにクラッシュレポートが溜まっていきます。
アプリのバージョンや、メモリー、その他もろもろの情報を取得出来るので、かなり便利です。
この記事のソースコードはGitHubにPushして起きました。
まずはjarファイルをダウンロード
zipファイルを展開して、
doc/CrashReports-Templete.csvをGoogle Docsにアップロードします。
アップロードしたらリネームしてください。
[{App名} Crash Report]とでもしておくと分かりやすいと思います。
次に、フォームの作成をします。
この時、一番下にURLが出力されているので、URLを記録しておいてください。
説明部分を適当に書いて[保存]ボタンを押します。
作成が完了したら、コーディングへ移ります。
まず、プロジェクトにlibsフォルダを作り、acraのjarファイルを移動させてください。
移動させたら、ダブルクリックでbuild-pathに通るので、ダブルクリックしてください。
次に、android.app.Applicationを拡張したクラスを作成します。
MyApplication.java
import org.acra.*; import org.acra.annotation.*; import android.app.Application; @ReportsCrashes(formKey = "dGVacG0ydVHnaNHjRjVXYTEtb3FPWGc6MQ") public class MyApplication extends Application { @Override public void onCreate() { ACRA.init(this); super.onCreate(); } }formKeyにはフォームを作成した時に記録したURLにformKey=で指定されている値を指定します。
次に、Android Manifest.xmlを修正します。
Android Manifest.xml
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:name="MyApplication">とandroid:name属性を追加し、先程作成したApplicationクラス名を指定します。
次にpermission にINTERNETを追加してください。
<uses-permission android:name="android.permission.INTERNET"/>
これでクラッシュした場合に自動でレポートが送信されます。
試しに、ArrayIndexOutOfBoundExceptionを発生させました。
public class TestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // ArrayIndexOutOfBoundsException int[] array = {1, 2, 3, 4, 5}; int sum = 0; for(int i = 0; i <= array.length; i++) { sum += array[i]; } System.out.println("sum=" + sum); } }これで、どんなレポートが来るかと言うと こんな感じで届きました。 項目に関してはかなりたくさん取れています。 おまけ Google Docsには変更時のメール通知が出来るので 使えばさらにAndroid開発が捗ったり。
ではでは〜
0 件のコメント:
コメントを投稿