【问题标题】:Android print stack traceAndroid 打印堆栈跟踪
【发布时间】:2012-12-10 02:12:50
【问题描述】:

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

【问题讨论】:

    标签: android


    【解决方案1】:
    Log.e("mytag", "mymessage",ex);
    

    【讨论】:

      【解决方案2】:

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

      窗口->显示视图->其他->Android下->LogCat

      更新时间:2014 年 7 月

      或者如果您使用的是 Android Studio,您可以在

      下找到它

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          首先,如果您还没有,您应该将代码包装在 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 发布的位置)。

          【讨论】:

            猜你喜欢
            • 2013-09-03
            • 2015-07-27
            • 2016-03-16
            • 2020-07-25
            • 2018-07-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多