Java 为什么Android没有';不打印堆栈跟踪?

Java 为什么Android没有';不打印堆栈跟踪?,java,android,Java,Android,即使显式写入e.printStackTrace(),它也不会打印到控制台,为什么?签出Logcat在DDMS透视图中,它应该不在控制台选项卡中 或者使用ddms命令工具读取logcat 不打印到控制台,而是打印到标准错误流。如果要在屏幕上打印,请将显示文本设置为e.getMessage()或e.getStackTrace()。(尽管我确实建议学习使用logcat进行调试。)使用Log.X(),其中X是您想要的错误控制台类型(Log.e、Log.v、Log.d等)。您无法在Android上打印到控

即使显式写入e.printStackTrace(),它也不会打印到控制台,为什么?

签出
Logcat
在DDMS透视图中,它应该不在控制台选项卡中

或者使用
ddms
命令工具读取logcat


不打印到控制台,而是打印到标准错误流。如果要在屏幕上打印,请将显示文本设置为
e.getMessage()
e.getStackTrace()
。(尽管我确实建议学习使用logcat进行调试。)

使用Log.X(),其中X是您想要的错误控制台类型(Log.e、Log.v、Log.d等)。

您无法在Android上打印到控制台。您必须使用Android日志类。当我有一个异常并且我想打印它时,我使用:

for (StackTraceElement element : exception.getStackTrace())
    Log.e("my_tag", element.toString());
或者你可以试试

String stackTrace = Log.getStackTraceString(throwable);

之后,您可以将其打印到Android日志。

使用ddms,它将打印到控制台,就像在普通的旧java开发中一样?不,永远不会打印到控制台。如果您在硬件上进行测试,有一个免费的应用程序(aLogcat),可以很好地查看您手机的日志,而无需连接到ddms。@Tom Brito:“使用ddms,它将打印到控制台,就像在普通的旧java开发中一样?”不,就像在远程机器上运行java GUI一样,它将在“普通的旧java开发”中打印到本地机器的控制台。请记住:您的手机和开发PC是两个不同的硬件。Eclipse中有一个LogCat选项卡(如上所示)或者是一个独立的DDMS。如果您绝对需要在某个终端窗口中看到LogCAT输出,请使用<代码> ADB LogCAT。并考虑使用<代码> Android .UTIL.LOG< <代码>,而不是<代码> PrimtStAccTrace()/<代码>。