0

アプリの logcat 出力に問題があります。
通常、logcat へのロギングは機能します。しかし、アプリの出力が logcat の出力から完全に削除されているように見えることがあります。アプリがログを記録したことは証明できますが、logcat には 1 行もありません。

これはいつ発生しますか:
サービスを開始する BroadcastReceiver によって真夜中にウェイクアップするようにアプリをスケジュールします。アプリが起動してログファイルを作成し、そのファイルと logcat の両方に書き込む関数を呼び出すことで並行して書き込みます。ログファイルには 3 行が書き込まれています。(そして、アプリは何らかの形で停止します。) 少なくとも、これら 3 行は logcat にも記録されています。
翌日、真夜中を囲むすべてのlogcatメッセージを表示します。アプリのログに 1 行も記録されていません。

Android がアプリをメモリから消去し、真夜中に再度読み込まれると思います (適切に初期化されていないため、クラッシュします)。しかし、logcat の出力がないのはなぜですか?

ヒントをありがとう。

4

1 に答える 1

0

Logcat にはサイズ制限があります。この制限に達すると、新しいメッセージが入ってくるためのスペースを確保するために、古いメッセージが消去されます。Logcat がアプリのメッセージを具体的に削除しているわけではありません。一晩中実行している間に、他にも多くのメッセージが Logcat に送られているためです。あなたのものは削除されています。

特定のデバイスのバッファ サイズを確認するには、デバイスを接続し、シェル ウィンドウで次のコマンドを実行します。

adb logcat -g

出力ウィンドウを物理的に見ることができないときにログ メッセージを収集する必要がある場合は、ファイルにログを記録することによって正しいことを行っています。ビルドにグローバル フラグを設定して、通常どおりにログを記録するか、携帯電話のローカル ファイルに出力するかを指示する同様のことを行います。

于 2012-05-31T09:49:00.753 に答える