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
から、bufferedReaderがいっぱいになりline
ます。
の検査は、readLine()の前にfalseであり、その直後にtruebufferedReader
になるメンバーを持つメンバーin
(InputStreamReader)を示しています。endOfInput
最後のニュース: エミュレータ自体の中でターミナルエミュレータを開いて実行しました:
$ logcat -v time -b main *:V
Unable to open log device '/dev/log/main': Permission denied
$