私の限られた数のAndroid搭載デバイスでは、アプリが処理されずにクラッシュした場合、例外がログに書き込まれます。しかし、私はそれをしないサムスンi8160に遭遇しました。様々なROMを搭載したi8160がそうです。実際、起動時には何も記録されません。それはeBayに由来するので、歴史は不明ですが、それが奇妙なROMであると仮定し、何か他のものを点滅させるのではなく、別の場所で問題が再び発生する場合には、Androidアプリのクラッシュ例外をログに記録しない
最初に試してみるのは、*#*#2846579#*#*
にダイヤルすることでしたが、これは認識されません。実際にダイヤルしようとしています。 *#9900#
はメニューをポップアップするだけですが、ログやその他の情報を/ data/logのファイルにエクスポートしてエクスポートすることができます。ロギングは起動時ではないため、あまりエクスポートしません。
最初は、/ dev/logは存在しません。これを修正するための1つの提案は、logcat-enable
をシェルから試すことでした。これは見つからない。もう1つの提案は、ルート化されたシェルからinsmod /lib/modules/logger.ko
を実行してログモジュールを手動でロードすることでした。これは、最大ログインもたらしますが、アプリのクラッシュは、すべてのlogcat出力は
I/dumpstate(8074): begin
I/dumpstate(8074): done
あるとき、私はlogcat出力を含めるdumpstateファイルを、見つけたが、また、それだけではなく、例外ダンプの作成が指摘しますそれはそれを引き起こした。
モジュールを起動するだけでなく、アプリがクラッシュしたときに取るべきアクションを決定する設定がいくつかあると仮定しています。ここでは例外をスタックしてトレースをスタックに設定しません。とにかく走っていないだろう。しかし、私はこのようなものを見つけることはできません。誰かがさらに進歩する方法についてのアイデアはありますか?
私はANRのレポートボタンが私が言及したdumpstateファイルを生成していると思われます。このケースでは、初期の起動時に処理されない例外が発生して自分自身のアプリケーションがクラッシュすることになります。私は別のデバイスでそれを実行し、私はそれからログエントリを持っていると(突然)何が間違っているのが表示されますが、それはまだすべてのデバイスのロギングを取得すると便利だろう。はい、私は(別の場所で)別のログファイルを使用して回転させることはできますが、それはやや面倒なやり方ですが、初期の起動時に問題が発生することはありません。 –