【发布时间】:2012-12-10 02:12:50
【问题描述】:
如何在 android 中获得相当于 printStackTrace 的功能?我知道我可以通过将标签名称和字符串传递给日志记录方法来记录错误,但这只会给我一个空指针异常。如果我调用 e.printStackTrace(),这个数据会打印到哪里?
【问题讨论】:
标签: android
如何在 android 中获得相当于 printStackTrace 的功能?我知道我可以通过将标签名称和字符串传递给日志记录方法来记录错误,但这只会给我一个空指针异常。如果我调用 e.printStackTrace(),这个数据会打印到哪里?
【问题讨论】:
标签: android
Log.e("mytag", "mymessage",ex);
【讨论】:
如果您使用 Eclipse,请确保您已打开 LogCat 窗口。你可以在下面找到它
窗口->显示视图->其他->Android下->LogCat
更新时间:2014 年 7 月
或者如果您使用的是 Android Studio,您可以在
下找到它窗口菜单 -> 显示视图 -> Logcat
LogCat 就像普通 JAVA 中的控制台。您的 e.printstacktrace() 也会出现在 LogCat 中。
【讨论】:
数据仍会打印到 DDMS 日志中 e.printStackTrace(); 你也可以使用 Log.e("标签", "描述", e); 这也将打印日志。 DDMS 位于 android-sdk/tools/ddms 下,日志将在启动时显示在底部窗格中。
【讨论】:
首先,如果您还没有,您应该将代码包装在 try-catch 结构中,例如:
private String TAG = "MyMethodName"; // change this to anything that makes sense to you
try {
...
Log.d(TAG, "processed OK");
} catch (Exception except) {
Log.e(TAG,"CRASH StackTrace: "+ Arrays.toString(except.getStackTrace()));
}
此伪代码将显示完整的堆栈跟踪。
NEWBIE 警报:
在发布应用程序之前,不要忘记“注释掉”(使用//)这个以及所有可能用于暴露代码内部的调试功能。插入运行您的代码并启用 ADB 的设备的任何人都将能够访问 LogCat(Log 发布的位置)。
【讨论】: