ライブラリーを紹介させて頂きます。 android-remote-stacktraceです。
- アプリ設定
- 上記サイトでtrace.jarをダウンロードして、ライブラリーパスに通す。
- インターネットに接続する権限設定
manifestに以下を追加し、インターネットに接続する権限を追加。<uses-permission android:name="android.permission.INTERNET">
- 例外処理ハンドラーを登録
Service, IntentService, ActivityクラスのonCreateメソッドをOverrideし、ExceptionHandler.register(this, “エラー情報を処理するphpファイルまでのURLパス");
を追記する。Activityの数は多いので、すべてのActivityに書くのは大変かと思うので、
BaseActivityクラスを継承するような設計にしておけば、BaseとなるクラスのonCreateメソッドに
書くだけで済む。
- サーバ設定
- サイトに上がっているが、以下のphpファイルを設定
<?php // データが正しくない場合、エラーメッセージのページを見せる。 if ( $_POST['stacktrace'] == "" || $_POST['package_version'] == "" || $_POST['package_name'] == "" ) { die("This script is used to collect field test crash stacktraces. No personal information is transmitted, collected or stored.<br/>For more information, please contact <a href='mailto:support@nullwire.com'>email@domain.com</a>"); } $random = rand(1000,9999); $version = $_POST['package_version']; $package = $_POST['package_name']; $handle = fopen($package."-trace-".$version."-".time()."-".$random, "w+"); fwrite($handle, $_POST['stacktrace']); fclose($handle); // メールに例外情報を送信する場合、以下のメールに送信先メールアドレスと、送信元メールアドレスを修正し、コメントアウトを外す。 //mail("mads.kristiansen@nullwire.com","IMPORTANT: Exception received (".$version.")",$_POST['stacktrace'], "from:bugs@nullwire.com"); ?>