Ошибка при выполнении exec(). Команда:Runtime.exec() throwing Рабочий каталог: null Окружающая среда: null
set `ps | grep <package name>`
Working Directory: нулевая среда: нулевая
Я бегу следующую команду, чтобы получить идентификатор процесса для моего приложения
private int getProcessId(String packageName) {
int processid = -1;
try {
runADBCommand(new String[] {"set `ps | grep " + packageName + "`"});
processid = Integer.parseInt(runADBCommand(new String[]{"print $2"}));
} catch (IOException e) {
e.printStackTrace();
Log.e(LOG_TAG, e.getMessage());
}
Log.w(LOG_TAG, "Process id: " + processid);
return processid;
}
Функция runADBCommand выглядит следующим образом:
private String runADBCommand(String[] adbCommand) throws IOException {
String returnValue = "", line;
InputStream inStream = null;
try {
Process process = Runtime.getRuntime().exec(adbCommand);
inStream = process.getInputStream();
BufferedReader brCleanUp = new BufferedReader(new InputStreamReader(inStream));
while ((line = brCleanUp.readLine()) != null) {
returnValue = returnValue + line + "\n";
}
brCleanUp.close();
try {
process.waitFor();
} catch (InterruptedException e) {
Log.e(LOG_TAG, e.getMessage());
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
Log.e(LOG_TAG, e.getMessage());
}
return returnValue;
}
Я пытаюсь запустить это на неуправляемом устройстве Moto G, а также разрезать aw k не являются , доступными в оболочке устройства, чтобы я мог напрямую получить pid.
Это не исключение, поэтому оно не было выброшено. Обеспечьте всю трассировку стека. – EJP