【问题标题】:Wrong output with logcat inside my application我的应用程序中的 logcat 输出错误
【发布时间】:2013-04-26 12:19:52
【问题描述】:

我正在开发一个多标签应用程序。在其中一个选项卡中,我想显示 logcat,但我在正确运行它时遇到了很多问题。

现在我正在使用以下命令,但我的 TextView 中没有任何内容。 :

Process process = Runtime.getRuntime().exec("/system/bin/logcat -s com.vittorio:I");

但是当我在终端中运行相同的命令时,它可以完美运行。

我也试过这个其他命令:

Process process = Runtime.getRuntime().exec("/system/bin/logcat *:I");

但由于某种原因,它还会打印调试级别消息...

编辑(1):

我通过向整个日志添加高级过滤器 (java) 绕过了这个问题。所以我只在我的 textview 中打印我需要的内容。这是一个非常肮脏的解决方案,但目前是我设法提供的唯一解决方案。

我想指出,我在手机上遇到了不同的行为:

  • Galaxy S Plus(root):我可以看到日志。
  • 银河 Y(根):无日志
  • Nexus One(无根):无日志

编辑 (2) - 已解决(需要根电话)

经过一番努力,我设法解决了我的问题。实际上,浏览 init.rc 系统文件时,我看到 /dev/log/main 和 /dev/log/system 的权限设置为 620 .. 这就是为什么我无法在某些手机上打开日志的原因。所以我也扎根了我的 Nexus One,并在调用 logcat 命令之前将此命令添加到我的活动中:

Process process_su = Runtime.getRuntime().exec("su");
Process process_ch = Runtime.getRuntime().exec("chmod 777 /dev/log/main");

完成! :D

希望这些信息能帮助任何面临我同样问题的人。

【问题讨论】:

  • logcat 不应该在应用程序中工作。我认为有权限,但我不认为它是官方支持的
  • 实际上有很多打印logcat的应用程序,所以我认为这不是真正的问题:)。无论如何,我可以打印整个日志,但如果我无法过滤我想看到的内容,我也不会无用! :D
  • 您是否尝试将参数拆分为 String[] ? ([0] 是命令 [1-n] 是参数)

标签: android logcat


【解决方案1】:

您必须使用此权限:

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

然后你就可以使用我找到的那个sn-p了

    try {
      Process process = Runtime.getRuntime().exec("logcat -v");

      BufferedReader bufferedReader = new BufferedReader(
      new InputStreamReader(process.getInputStream()));

      StringBuilder logString=new StringBuilder();
      String line;

      while ((line = bufferedReader.readLine()) != null) {
        logString.append(line);
      }

      TextView tv = (TextView)findViewById(R.id.logTextView);
      tv.setText(logString.toString());

    } catch (IOException e) {

    }

我没试过,但似乎是正确的

【讨论】:

  • 感谢您的回答,但我已经在清单中获得了许可,实际上我的代码与您发布的代码非常相似。无论如何,我通过在整个日志中添加高级过滤器(java)来绕过这个问题。所以我只在我的文本视图中打印我需要的内容。这是一个非常肮脏的解决方案,但目前是我设法提供的唯一解决方案
  • 可能和logcat参数有关,你用-d试过了吗?
  • 是的,我尝试了很多不同的参数组合,但都没有成功:(
  • 也许你可以看看这段代码,它似乎和你做同样的事情,但也许有一些小的差异code.google.com/p/android-random/source/browse/…
  • 谢谢,我去看看:)
猜你喜欢
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 2020-08-31
  • 1970-01-01
  • 1970-01-01
  • 2011-07-30
  • 2021-05-18
相关资源
最近更新 更多