2012-06-28 3 views
0

Я работаю над приложением и имею следующий код для отображения приложения в текстовом виде, но единственная команда, которую он отображает, - logcat -d.не может фильтровать logcat в приложении android

Я хочу, чтобы он отфильтровывал материал с тегами 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

Первый шаг заключается попробовать LogCat без программы - только в командной строке с ADB. Это позволит вам экспериментировать с тем, что работает. – SirPentor

ответ

0

Исследование logcat.cpp подтверждает мое подозрение, что все сообщения об ошибках от самой программы будут записаны в поток ошибок - только фактические сообщения журнала идут на стандартный вывод.

Так что, если что-то не так с вашей попыткой, вы ничего не увидите. Очень вероятно, что это было бы неправильно, если бы не было права на чтение журналов в вашем манифесте приложения; без этого, logcat, запускаемый вашим приложением, и, следовательно, под его идентификатором пользователя, не сможет получить доступ к буферу журнала. И это будет жалоба на stderr, а не на stdout.

Две рекомендации:

  • попробуйте открыть process.getErrorStream() вместо этого, и посмотреть, если вы получите сообщение об ошибке.

  • убедитесь, что вы есть журналы чтения манифеста разрешение

Смежные вопросы