在平板电脑中查看logcat

时间:2014-02-02 17:17:20

标签: android debugging

有没有办法在运行4.4的平板电脑上查看日志?我已经下载了几个应用程序,如aLogCat,但没有一个显示我的应用程序使用S.o.p或Log.d写出的内容。我有一个间歇性的错误,给不幸的appname已停止消息。有没有办法在此事件后查看日志,而无需连接到PC并使用adb程序? 还有什么方法可以获得调试输出?捕获System.out和System.err类会获得堆栈跟踪吗?

谢谢, 规范

4 个答案:

答案 0 :(得分:1)

你专注于读取logcat,但是有更好的解决方案来读取崩溃日志。我的个人偏好是Crashlytics,它会自动记录致命异常并提供记录其他消息的机制。

所有这些崩溃记者的工作方式是定义UncaughtExceptionHandler:

Thread.setDefaultUncaughtExceptionHandler(
            new MyUncaughtExceptionHandler(this));

如果您更喜欢使用自己的解决方案,可能需要考虑使用它。 See this related question for more details.

答案 1 :(得分:0)

  

有没有办法在运行4.4的平板电脑上查看日志?

不,抱歉。应用只能看到自己的日志消息,而不能看到其他应用的消息。因此,第三方日志查看器无法看到您应用的消息。

  

有没有办法在此事件后查看日志而无需连接到PC并使用adb程序?

使用任何标准崩溃管理库,如ACRA或Crashlytics,BugSense等服务。

答案 2 :(得分:0)

AIDE应用程序(Android集成开发环境)允许用户直接在Android设备上开发Android应用程序。

一个特别的功能是读取logcat。

你可以在这里https://play.google.com/store/apps/details?id=com.aide.ui

答案 3 :(得分:0)

这是我在程序中输入的代码。它似乎有效:

    // Define inner class to handle exceptions
    class MyExceptionHandler implements Thread.UncaughtExceptionHandler {
        public void uncaughtException(Thread t, Throwable e){
           java.util.Date dt =  new java.util.Date();
           String fn = LogFilePathPfx + "exception_" + sdf.format(dt) + ".txt";
           try{ 
              PrintStream ps = new PrintStream( fn );
              e.printStackTrace(ps);
              ps.close();
              System.out.println("wrote trace to " + fn);
              e.printStackTrace(); // capture here also???
              SaveStdOutput.stop(); // close here vs calling flush() in class 
           }catch(Exception x){
              x.printStackTrace();
           }
           lastUEH.uncaughtException(t, e); // call last one  Gives: "Unfortunately ... stopped" message
           return;    //???? what to do here
        }
     }

     lastUEH = Thread.getDefaultUncaughtExceptionHandler(); // save previous one
     Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler());