无法在Android应用中过滤logcat

时间:2012-06-28 20:59:03

标签: android

我正在开发一个应用程序并使用以下代码在textview中显示应用程序,但它显示的唯一命令是logcat -d

我希望它能过滤标有dalvikvm的内容。我试过了logcat -s dalvikvm,但我的应用程序没有在设备上显示任何日志信息。

这是我的代码。

    try {
        Process process = Runtime.getRuntime().exec("logcat -s dalvikvm");
        BufferedReader bufferedReader = new BufferedReader(
        new InputStreamReader(process.getInputStream()));

        StringBuilder log=new StringBuilder();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
          log.append(line);
        }
        TextView tv = (TextView)findViewById(R.id.textlog);
        tv.setText(log.toString());
      } catch (IOException e) {
      }
    }
  }

1 个答案:

答案 0 :(得分:0)

对logcat.cpp的检查证实了我怀疑来自程序本身的任何错误消息都将写入stderr - 只有实际的日志消息才会转到stdout。

因此,如果您的尝试出现任何问题,您根本不会看到任何内容。一个很可能的错误就是在你的app清单中没有读取日志权限;没有这个,你的应用程序运行的logcat,因此在你的应用程序的用户ID下,将无法访问日志缓冲区。它的抱怨是stderr而不是stdout。

两条建议:

  • 尝试打开process.getErrorStream(),看看是否收到错误消息。

  • 确保您拥有读取日志清单权限