2015-01-08 15 views
6

デバイス上でアプリをデバッグしようとしていますが、デバッガに問題があります。私はそれがとても似Logcatに書くでしょうかどうかを確認するためにロガーをテストしてみました:Androidスタジオでロギングとクラッシュのスタックトレースが表示されない

Log.d("MyActivity", "Testing logging..."); 

しかし、何もapp: com.myapp.debugフィルタでLogcatに現れません。私は単純に(私のアプリ名を使用して)文字列でフィルタリングするとき、それはアップしますが、エントリは次のようになります。

01-08 13:45:07.468 29748-29748/? D/MyActivity﹕ Testing logging... 

この疑問符がアプリで何かがデバッガに渡さ取得されていないことを意味していますか?

私はクラッシュをデバッグしていましたが、そのたびに「App is not responding」というメッセージが表示され、現在のアクティビティが閉じられ、デバッガが切断され、デバッガの接続が切断されました。アプリは以前のアクティビティを実行し続けます。スタックトレースはありません。クラッシュに関する情報はありません。何もありません。 Android Studioで設定する必要があることはありますか?

+4

私は、多くの場合、パッケージベースのフィルタリングは、何らかの理由で、logcatに表示さからのログ出力を防ぐことがわかります。 ANRを診断するには、logcatのすべてのフィルタリングを削除し、ログレベルを警告(エラーではない)に切り替えることをお勧めします。出力をスクロールして、ANRの詳細が表示されるかどうかを確認します。 – stkent

+0

私には分かりませんが、同様の問題がありました。ただ実行 - >再開をクリックしてください。 –

+0

私は、アプリケーションパックでフィルタリングするときにAS 1.0と同様の問題があります。私はLogcatに何も見ません。フィルタを削除すると、デバイスのすべてが表示されます。 –

答えて

4

私はそれが同じadbまたはfilerの問題だと思います。 最初にすべてのフィルタを削除します。 端末adb kill-serverでadb - タイプを再起動& & adb start-server。

+0

奇妙なものが保存されました –

+0

フィルタを指摘してくれてありがとうございました。私のフィルタが誤ってFirebaseに設定されているように見えるので、LogCatにログはほとんど表示されません。 –

+0

@NeonWarge保存しました。とにかく、ファイアーベースに設定されているフィルターはどうしてですか? – Ishaan

12

私もこの問題を抱えていますが、これについてはあまり良い答えが見つかりません。 代わりに、私は回避し、Thread.setDefaultUncaughtExceptionHandler()でエラーをキャッチし、Log.e()でログに記録します。

私はこのクラスを使用しました。

public class ExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler { 
    private final String LINE_SEPARATOR = "\n"; 
    public static final String LOG_TAG = ExceptionHandler.class.getSimpleName(); 

    @SuppressWarnings("deprecation") 
    public void uncaughtException(Thread thread, Throwable exception) { 
    StringWriter stackTrace = new StringWriter(); 
    exception.printStackTrace(new PrintWriter(stackTrace)); 

    StringBuilder errorReport = new StringBuilder(); 
    errorReport.append(stackTrace.toString()); 

    Log.e(LOG_TAG, errorReport.toString()); 

    android.os.Process.killProcess(android.os.Process.myPid()); 
    System.exit(10); 
    } 
} 

次に、私のアクティビティで。

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    /** 
    * catch unexpected error 
    */ 
    Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler()); 

    setContentView(R.layout.activity_main); 

    //other codes 
    } 

希望します。

+0

この有益なクラスをありがとう。 – ondermerol

+0

これは数週間からこれで苦労しているスーパーユースです。 –

関連する問題