Процесс 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
.
Проверка bufferedReader
показывает элемент in
(InputStreamReader), который сам имеет элемент endOfInput
, который имеет значение false перед readLine() и становится true сразу после него.
ПОСЛЕДНИЕ НОВОСТИ: я открыл эмулятор терминала в самом эмуляторе и запустил его:
$ logcat -v time -b main *:V
Unable to open log device '/dev/log/main': Permission denied
$