クラッシュレポートを最大限に活用する方法、または生活を楽にする方法

こんにちはhabrodroidery!

アプリケーションが実稼働環境にクラッシュし、その理由、デバイス、ファームウェア、構成をすばやく理解する必要がある場合、この小さなトピックでこの問題を解決する1つの方法について説明します。

ACRAの機能の猫の説明の下。





アプリケーションのクラッシュに関する標準メッセージは、デバイス(またはその構成に関する有用な情報)をまったく役に立たない(通常のスタックトレース)のに役立ちますが、 ACRAは私たちの助けになります-code.google.com/p/acra



このライブラリは、有益で便利な方法でクラッシュレポートを作成するのに役立ちます。

次のメソッドはすぐに使用できます。

1. Googleドキュメントドキュメントへのクラッシュレポートの作成(デフォルトの方法)

2.レポートをメールに送信する

3.データをサーバーに送信します。ここで、スクリプトが任意にデータを処理できます

このインターフェイスのsendメソッドを実装するだけで、ReportSenderを簡単に作成することもできます。

いくつかのレポート通知モードがあります。

1.サイレント(デフォルト)-ユーザーに通知せずにレポートがGoogleドキュメントに書き込まれ、標準のクラッシュダイアログが呼び出されます

2.トースト-メッセージとともにトースト通知が表示されます

3.通知-ステータスバーにメッセージが表示され、コメントを入力できるダイアログが表示されます(オプション)。

かなりの数のパラメーターがレポートに送信されますが、アノテーションのcustomReportContentパラメーターを設定することで選択できます。

設置



上記のリンクからzipアーカイブをダウンロードします。 次に、jarライブラリをlibsプロジェクトフォルダーにスローし、Eclipseのビルドパスへのリンクを追加すると、ライブラリを使用する準備が整います。



作業例



レポートを送信するすべての方法に精通した後、私は最初の方法(Google Docsに送信)に落ち着きました。

次に、この奇跡を機能させる方法を説明します(また、プロジェクトwikiで説明されています)。

まず、次のように注釈と数行のコードを追加するApplicationクラスのインスタンスが必要です。



import org.acra.*; import org.acra.annotation.*; @ReportsCrashes( formKey = "  ", logcatArguments = { "-t", "50", Constants.DEBUG_TAG+":D"} ) public class MyApp extends Application { @Override public void onCreate() { ACRA.init(this); ErrorReporter.getInstance().checkReportsOnApplicationStart(); super.onCreate(); } }
      
      





そして、アプリケーションオブジェクトの名前の説明をマニフェストに追加する必要があります。

 <application android:name="MyApp" ...
      
      





アノテーションでは、フォームキー(以下で取得する方法と場所について説明します)とLogCat出力フィルタリングオプションを示します。 レポートに追加するfilterパラメーターでは、ログエントリの数を50個に制限し、レポートにカスタムタグを含めるようライブラリーに指示します(正直なところ、このフィルターは奇妙に動作しますが、必要なタグをすべて追加します)。

ところで、ログを読み取る許可をマニフェストに追加することを忘れないでください。

 <uses-permission android:name="android.permission.READ_LOGS"/> </pre>
      
      





次に、onCreateメソッドで、ライブラリを初期化し、アプリケーションの起動時に初期レポートを確認するように指示します。 この便利なオプションを使用すると、以前に記録されたが送信されなかったドキュメントでレポートをアップロードできます(たとえば、デバイスにインターネットがありませんでした)。



Googleドキュメントの準備



おそらくGoogleアカウントを持っています。 Google Docsに移動し、「Load」ボタンをクリックして、docフォルダーのACRAアーカイブにあるCrashReports-Template.csvファイルを選択します。 ロード後、ドックの名前を変更できますが、それは問題ではありません。 [ツール]メニューのドキュメントに移動し、[フォーム]-> [フォームの作成]を選択します。 新しいウィンドウが開くので、「このフォームを表示するには<ドメイン>サインインが必要」のチェックを外す必要があります。 リンクのこのウィンドウの下部には、必要なキーがあります-formKey、保存します。 このウィンドウの上部にある保存ボタンを押すと、ドキュメントはバグレポートを受信する準備が整います。 保存したキーをコードに貼り付ければ完了です!



wikiライブラリには多くの追加の例があります。

code.google.com/p/acra/wiki/AdvancedUsage



さらに、ここでは、議論されている問題の議論を読んで、秋を処理する別の方法を見ることができます。

stackoverflow.com/questions/601503/how-do-i-obtain-crash-data-from-my-android-application



送信されたレポートがドキュメントのフォームに即座に表示されることを追加します。

トピックに関するすべての質問とコメントは、通常どおり、午後に行われます。



All Articles