1

私の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は常にnull 値を取得します。

Android では常に同じことが実行されactivity's onCreate()ます。なぜこれが起こるのか理解できませんか?

Androidテストプロジェクトではなく、アクティビティクラスで同じことが実行されます。

READ_LOGS また、 WRITE_EXTERNAL_STORAGEテスト プロジェクトの manifest.xmlファイルにuse -permission を追加します。

それがどのように機能するか、または何が起こるか知っている人はいますか?

前もって感謝します。

4

2 に答える 2

0

追加してみる

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

あなたのマニフェストに。

于 2012-05-18T19:03:47.990 に答える
-1
String []baseCommand = new String[]{"logcat", "-v","time"}; 
Process logReaderProcess = Runtime.getRuntime().exec(baseCommand);

これを試してください

于 2011-10-07T06:21:53.137 に答える