мои друзья, я должен признать, что вопрос немного длинный, но чтобы вы могли лучше понять вопрос, я вставил сюда коды, это некоторые коды Android. Вам не нужно смотреть на это внимательно, это всего лишь ссылка. для некоторых функций кодов не работает, я начал отлаживать (используя Eclipse). до цикла while
все в порядке (я отметил это в коде), при входе в цикл while происходит что-то волшебное:
- первый цикл, после выполнения кода
while((msg = d.readLine()) != null)
, значение переменнойmsg
пусто, возможно, это неnull
, потому что вы скоро войдете во второй цикл прямо сейчас. - второй цикл, после выполнения кода
while((msg = d.readLine()) != null)
, значение переменнойmsg
равноtouchasd not found
, да, это то, что я действительно хочу третий цикл, после выполнения кода
while((msg = d.readLine()) != null)
, маленькая стрелка, указывающая на текущую строку кода, исчезла! нигде не могу найти! а кнопка перешагнуть серая! я даже не могу нажать на нее, чтобы продолжить отладку! как только отладка закончилась! но у меня есть некоторые коды ниже, которые вообще не выполняются! ничего вlogcat
. кажется, что затмение думает, что все в порядке, без каких-либо ошибок.try { Process p = Runtime.getRuntime().exec("su"); DataOutputStream outputStream = new DataOutputStream(p.getOutputStream()); TextView suCommandMessage = (TextView)findViewById(R.id.suCommandMessage); BufferedReader d = new BufferedReader(new InputStreamReader(p.getErrorStream())); outputStream.writeBytes("touchasd /m\n"); String sb = ""; String msg = ""; /////////////////////////////////////HERE///////////////////////////////////// while((msg = d.readLine()) != null) { sb = sb + msg; } /////////////////////////////////////HERE///////////////////////////////////// suCommandMessage.setText(sb); outputStream.writeBytes("exit \n"); p.waitFor(); } catch(IOException e) { new AlertDialog.Builder(this) .setTitle("Exception") .setMessage("IOException: " + e) .setPositiveButton("OK", null) .show(); } catch(InterruptedException e) { new AlertDialog.Builder(this) .setTitle("Exception") .setMessage("InterruptedException: " + e) .setPositiveButton("OK", null) .show(); }
}