8

如何在 android 中获得相当于 printStackTrace 的功能?我知道我可以通过将标签名称和字符串传递给日志记录方法来记录错误,但这只会给我一个空指针异常。如果我调用 e.printStackTrace(),这些数据会打印到哪里?

4

4 回答 4

17
Log.e("mytag", "mymessage",ex);
于 2012-12-10T02:15:44.350 回答
6

如果您使用的是 Eclipse,请确保您已LogCat打开窗口。你可以在下面找到它

Window-> Show View-> Other -> Under Android -> LogCat

更新时间:2014 年 7 月

或者,如果您使用的是 Android Studio,您可以在下面找到它

窗口菜单 -> 显示视图 -> Logcat

LogCat就像普通JAVA中的控制台。你e.printstacktrace()也会出现在 LogCat 中。

于 2012-12-10T02:23:11.867 回答
2

数据仍使用 e.printStackTrace() 打印到 DDMS 日志;你也可以使用 Log.e("Tag", "Description", e); 这也将打印日志。DDMS 位于 android-sdk/tools/ddms 下,日志将在启动时显示在底部窗格中。

于 2012-12-10T02:15:12.863 回答
0

首先,如果您还没有,您应该将代码包装在一个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()));
}

此伪代码将显示完整的堆栈跟踪。

新手提醒:在发布应用程序之前,不要忘记“注释掉”(使用//)这个和所有可能用于暴露代码内部的调试功能。插入运行您的代码并启用 ADB 的设备的任何人都将能够访问 LogCat(在哪里Log发布)。

于 2016-08-22T11:25:31.777 回答