我正在开发一个应用程序并使用以下代码在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) {
}
}
}
答案 0 :(得分:0)
对logcat.cpp的检查证实了我怀疑来自程序本身的任何错误消息都将写入stderr - 只有实际的日志消息才会转到stdout。
因此,如果您的尝试出现任何问题,您根本不会看到任何内容。一个很可能的错误就是在你的app清单中没有读取日志权限;没有这个,你的应用程序运行的logcat,因此在你的应用程序的用户ID下,将无法访问日志缓冲区。它的抱怨是stderr而不是stdout。
两条建议:
尝试打开process.getErrorStream(),看看是否收到错误消息。
确保您拥有读取日志清单权限