Android Studio、アプリの終了後にlogcatがクリーンアップ


133

Android Studioのアップデート1.2 Beta以降、logcatに問題があります。アプリを実行すると、通常どおりにすべてがログに記録され、アプリがクラッシュして、「残念ながら、ゲームが停止しました」というメッセージが表示されます。

数秒後、androidはそのメッセージを閉じます。これが発生すると、logcatも完全にクリアされます。つまり、いつでもエラーを読み取ることはほとんどできません。バッファに関するいくつかの情報は見つかりましたが、問題であることを疑っているという事実を除けば、Android Studioにはバッファを増やすオプションがないようです。

便利なのは、プロセスがクリアされてAndroid.process.coreに変更され、logcatに表示されるメッセージが次のようになることです。

04-13 10:28:13.394  12259-12265/android.process.acore D/dalvikvm    
Debugger has detached; object registry had 1 entries

編集:私はブレークポイントについて読んだので、Settings-build、execution、deployment-debuggerのブレークポイントでフォーカスアプリケーションを無効にしましたが、効果がありませんでした。


2
adbプログラムのインストール場所が見つかったらadb logcat、ターミナルまたはコマンドウィンドウから実行し、オプションでそれをポケットベル、grep、teeなどにパイプします。
Chris Stratton

1
はい、あなたも試すadb shell bugreport > log.txtことができます、コマンドが完了すると一種のログ情報がフェッチされます
おいしい2015

@yummyは今のところ私にとって最善の方法でしたが、これは私の意見では最善の方法ではないため、修正を見つけることを期待しています。ありがとう
ブラックロータス

1
Android Studio 1.2でログをクリーンアップしない解決策は見つかりませんでしたが、簡単な解決策は、アプリがクラッシュしたときに(デバイスの)閉じるボタンをクリックしないことです。したがって、すべてのログと、アプリがクラッシュした理由がわかります。
チャキル

@Jameltheoneメッセージは画面に数秒間しか表示されず、クラッシュダイアログ自体を閉じます。だから、本当にそれを制御する必要はありません。
ブラックロータス

回答:


270

同じ問題がありましたが、バグというより機能のように見えます。

AndroidStudioでは、Logcatウィンドウのデフォルト設定は「選択したアプリケーションのみを表示」(Logcatウィンドウの右上隅)のようです...これは、選択したプロセスのログ(デフォルトでは現在の起動)を表示しています。したがって、テスト中にアプリがクラッシュすると、そのプロセスはなくなるため、フィルターはログをクリアします。

代わりに、「フィルター構成の編集...」を選択して、アプリのフィルターを設定します。例:

  • FilterName:MyApp
  • PackageName:com.example.myapp(<<アプリのパッケージ名に置き換えます)

...その後、将来の実行のためにそのフィルターを選択します。これにより、アプリがクラッシュした後でもログが保持されます。


どうもありがとうございます。私は2日前にエラーを見つけ出しました!これで、実際にエラーを表示する方法がわかりました。:)
Woppi 2017

あなたは救世主です。ログがクリアされる前にログをコピーして貼り付けようとしていました...他の電話は正常に動作するため、私の電話がそうしていると思っていました。
マスターファティ2017

ちょうど私が欠けていたもの。これは受け入れられる答えになるはずです。
2017

同じ問題がありました。完璧に動作します。
Chandan Pednekar 2018

59

「選択したアプリケーションのみを表示」を「フィルターなし」に切り替えます。これにより、プロセスが実行されていない場合でも、プロセスからのlogcat出力を確認できます。

欠点は、logcatが他のプロセスからのスパムでさらに満たされることです。


1
スパムを除外するには、[選択したアプリケーションのみ表示/フィルターなし]ドロップダウンの横にある検索バーに独自のアプリのパッケージ名を入力します。
コンピューティング

24

アプリがクラッシュして再起動しました。また、何が起こっているのかを知るためにlogcatを読むときにいくつかの問題がありました。次に、ドロップダウンメニューの[デバイス]ドロップダウンの横に「com.mypackage.myapp( 'some number')」のようなものが表示され、アプリがクラッシュしたときに 「com.mypackage.myapp( 'いくつか')[DEAD] "。「デッド」オプションを選択すると、前のインスタンスのlogcatが表示されます。

死んだLogCat


クラッシュすると表示されます。
ALourenco 2018年

クラッシュを意味しました。PIDは変更されますが、無効なインスタンスはリストに表示されません。
Karan Modi 2018年

20

クラッシュした場合は、 Run、IDEの下部にタブを。

この部分でクラッシュの理由を確認できます(logcatクリーンケースでも)。

注意:上記のトリックが機能しない場合は、クラッシュを発生させてすぐにモバイルケーブルを取り外してください(実際のデバイスをテストに使用している場合)。クリーニングする前にエラーを確認できます。

更新: 上記のトリックも機能しない場合は、電話を取り付けたり取り外したりしてみてください。うまくいけば問題は解決します。

Update2:再び機能しない場合は、キャッチを無効にして再起動し、デバッグを再開してください。

Update3:最後の方法として、アプリを削除して再度インストールし、デバッグを開始します(テストしたい状態が失われていない場合)。


6

Android Studio 2+以降

  1. クリック Run

  2. クリック Edit Configurations

  3. Run/Debug Configurationsウィンドウを選択Miscellaneous]タブを

  4. Clear log before launchチェックボックスがチェックされていないことを確認してください


4

私は同じ問題に直面しており、これが解決策です:-

1-ツール-> Android-> ADB統合を有効にします。

そして今、あなたは通常通りlogcatとクラッシュを見ることができます


悲しいことに、私のADB統合はすでに十分に有効になっています。mabyの便利な機能の1つは、クリア後にメッセージが表示されることです。オブジェクトレジストリには1つのエントリがありました
Black Lotus

@BlackLotusあなたはあなたの問題を解決しましたか?私はここで
Hoo

これは新しいAndroid Studioでは無効になりました。
Hamzeh Soboh

4

アプリがクラッシュすると、フィルターはログをクリアします。「フィルター構成の編集」を選択し、フィルター名を使用して独自のカスタムフィルターを作成します。これにより、アプリが破損した場合でも、ログに情報が保存されます。


1

それは2018年であり、これはまだ起こる可能性があります。Android Studioを閉じて、再度開きます。


0

このバグは、Android Studioバージョン1.2.2の新しいリリースで修正されたようです。


1
Android Studio 2.2.2でも、このバグはまだここにあるので、@ maxdownunderは本当に「機能」であるという前提の下で非常に正しかったと思います
Aenadon

0

アプリがOutOfMemoryExceptionを引き起こしていることに気づくまで、私は同じ問題に遭遇し、どの回答も私を助けてくれませんでした。これも根本的な原因と考えられます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.