2012-05-18 36 views
1

logcat進程已啓動,我沒有收到任何錯誤或強制關閉。它似乎不會產生任何輸出。Android AsyncTask進程(logcat)不會輸出消息(在模擬器上)

String commandLine = "logcat -v time -b main *:V"; 
    String line; 

    try { 
     process = Runtime.getRuntime().exec(commandLine); 
     bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); 

     while(!mStop && (line = bufferedReader.readLine()) != null && newMessages.size() < maxMessages) { 
      // It does not reach this point 
      // Debugger shows 
      // mStop == false 
      // newMessages.size == 0 
      // maxMessages == 5000 
      // line == null 

懷疑是logcat退出而沒有打印任何東西。我在命令行中試過,它輸出logcat消息。

我將logcat替換爲ls,然後緩衝讀取器填充line

bufferedReader檢查顯示構件in(InputStreamReader的),其本身具有memeber endOfInput所述的readLine(前)和之後成爲右它


的最新消息: 我模擬器本身內打開終端仿真程序,並運行它:

$ logcat -v time -b main *:V 
Unable to open log device '/dev/log/main': Permission denied 
$ 

回答

3

尋找類似的職位後看起來這是一個相當從重複

Android unable to run logcat from application

總之,叔他的問題是:需要用戶許可才能讀取日誌,因此我添加了:

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

清單,它現在工作正常。