为什么进程在测试运行器类中给出空输入流



在我的android测试项目中,我只是使用adb command读取logcat

,

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中,我总是得到空值

,而同样的事情总是运行在android activity's onCreate()。我不明白为什么会这样?

同样的东西运行在活动类,而不是在android测试项目。

我还在测试项目的READ_LOGSWRITE_EXTERNAL_STORAGE中添加了使用权限manifest.xml文件。

有谁知道它是怎么工作的或者发生了什么吗?

提前感谢。

尝试添加

    <uses-permission android:name="android.permission.READ_LOGS" />
String []baseCommand = new String[]{"logcat", "-v","time"}; 
Process logReaderProcess = Runtime.getRuntime().exec(baseCommand);

try this out

相关内容

  • 没有找到相关文章

最新更新