почему процесс дает нулевой входной поток в классе тестового бегуна? - PullRequest
1 голос
/ 07 октября 2011

В моем тестовом проекте для Android я просто читаю logcat, используя adb command

как

public StringBuilder log=new StringBuilder();
    public String line="";
    public String temp="";

public void testSolo() throws Exception {

             String baseCommand = "logcat -v time";
            baseCommand += " ActivityManager:I "; // Info for my app
            baseCommand += " *:S "; // Silence others

            try {
                  Process logReaderProcess = Runtime.getRuntime().exec(baseCommand);
                  BufferedReader bufferedReader = new BufferedReader(
                   new InputStreamReader(logReaderProcess.getInputStream()));

                   while ((line =bufferedReader.readLine()) != null) {
                            log.append(line); // here readLine() returns null
                          }

            }
            catch (IOException e1) {
                      // TODO Auto-generated catch block
                      e1.printStackTrace();
                    }

 }

но здесь string line я всегда получаю нулевое значение ,

пока в андроиде всегда работает одно и то же activity's onCreate(). Я не понимаю, почему это произошло?

То же самое работает в классе активности, а не в тестовом проекте Android.

Я также добавлю использование -permission для READ_LOGS и WRITE_EXTERNAL_STORAGE в тестовом проекте manifest.xml файл.

Кто-нибудь знает, как это работает или что происходит?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 18 мая 2012

Попробуйте добавить

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

в манифест.

0 голосов
/ 07 октября 2011
String []baseCommand = new String[]{"logcat", "-v","time"}; 
Process logReaderProcess = Runtime.getRuntime().exec(baseCommand);

попробуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...