1

logcat 进程启动,我没有收到任何错误或强制关闭。它似乎根本没有产生任何输出。

    String commandLine = "logcat -v time -b main *:V";
    String line;

    try {
        process = Runtime.getRuntime().exec(commandLine);
        bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));

        while(!mStop && (line = bufferedReader.readLine()) != null && newMessages.size() < maxMessages) {
            // It does not reach this point
            // Debugger shows 
            // mStop == false
            // newMessages.size == 0
            // maxMessages == 5000
            // line == null

怀疑是 logcat 退出而没有打印任何内容。我在命令行中尝试了这个,它确实输出了 logcat 消息。

我替换logcatls然后 bufferedReader 填充line

检查bufferedReader显示成员in(InputStreamReader),它本身有一个成员,在 readLine() 之前endOfInput,在它之后变为


最新消息: 我在模拟器本身中打开了终端模拟器,然后运行它:

$ logcat -v time -b main *:V
Unable to open log device '/dev/log/main': Permission denied
$
4

1 回答 1

4

在寻找类似的帖子之后,这似乎与以下内容完全重复

Android 无法从应用程序运行 logcat

简而言之,问题是:读取日志需要用户权限,所以我添加了:

<uses-permission android:name="android.permission.READ_LOGS" />

到清单,它现在工作正常。

于 2012-05-18T18:23:52.783 回答