Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在android应用程序中筛选logcat_Android - Fatal编程技术网

无法在android应用程序中筛选logcat

无法在android应用程序中筛选logcat,android,Android,我正在开发一个应用程序,并使用以下代码在文本视图中显示该应用程序,但它显示的唯一命令是logcat-d 我希望它能过滤那些用dalvikvm标记的东西。我尝试了logcat-s dalvikvm,但我的应用程序在设备上没有显示任何日志信息 这是我的密码 try { Process process = Runtime.getRuntime().exec("logcat -s dalvikvm"); BufferedReader bufferedReader

我正在开发一个应用程序,并使用以下代码在文本视图中显示该应用程序,但它显示的唯一命令是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) {
      }
    }
  }

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

因此,如果你的尝试有任何问题,你将什么也看不到。一个很可能是错误的事情是在你的应用程序清单中没有读取日志的权限;否则,应用程序运行的logcat(因此在应用程序的用户ID下)将无法访问日志缓冲区。它的抱怨应该是向斯特德而不是斯特杜特

两项建议:

尝试打开process.getErrorStream,查看是否收到错误消息

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


第一步是使用adb在命令行上尝试不使用程序的logcat。这将让你试验什么是有效的。