AndroidStudio3.6を使用しe.printStackTraceをした際どのようにすれはLogcatにスタックトレースを出力できるのでしょうか?
try { aa(); } catch (Exception e) { e.printStackTrace(); } } public void aa()throws Exception{ throw new Exception(); }
ちなみに現状ここまではわかっています。
1.printStackTrace()とは戻り値voidのThrowableクラスのメソッドという事(戻り値voidの為、System.out.println()やLog()の第3引数にe.printStackTrace()を入れようが出ない。そもそもLog()の第三引数に入れれない。入れるとエラー)。
2.printStackTrace()は標準エラー出力に出力するという事。
その為、上記ソースでは標準エラー出力がLogcatで出ない為、でないという事がわかりました。
そもそもLogcatって何?って話になりますが、
あと
e.printStackTrace();
のところを
Log.i("test", "test", new Throwable());
とすればとりあえずはLogCatに出力出来るという事まではわかりました。
追記1
追加修正依頼からAndroidStudio4.0を使用している回答者様の環境では出力されたようです。
恐らく自分の環境(androidstudio3.6.3)に問題があると思います。
バージョンのせいなのか、はたまた設定のせいなのか…
追記2
追加依頼者様からのフィルターの助言により確認したところ、logcagt右上のドロップダウンリストがshow only selected applicationになっていました。No Filtersにしたところログはたくさん出る様になったのですが、肝心なprintStackTrace()でのログは出ていないようす…
androidstudioもバージョン4.0にしましたが、ダメなようす…
問題はどこだ…?
一応logcatのスクリーンショットを載せておきます。
(どのように設定してあるかわかる為)
(logcatの表示にスタックトレースが出ていますが、今回の質問とは関係ありません。恐らく…)
回答2件
あなたの回答
tips
プレビュー