2015-12-18 6 views
0

Я пытаюсь установить приложение Android в устройство из приложения Java.Программный запуск команды adb install в java

Использование следующей команды: Runtime.getRuntime(). Exec ("adb install /apps/testapp.apk");

сталкиваюсь следующее сообщение об ошибке - Не удается запустить программу «ADB»: ошибка = 2, Нет такого файла или каталога

Если я должен использовать ProcessBuilder, чтобы начать выполнение команды?

+0

Я подозреваю, что это проблема PATH; вы пытались использовать полный путь к adb, т. е. «Runtime.getRuntime(). exec («/path/to/androidsdk/tools/adb install /apps/testapp.apk »);'? – jonk

+0

Не нужно использовать параметр 'adb' в' exec() '. [Здесь] (http://stackoverflow.com/questions/34104119/why-does-exec-start-a-adb-daemon) можно найти объяснение, почему нет. Вместо этого используйте 'pm install app.apk'. Хотя программирование не является тривиальной задачей. Возможно, вам придется сначала схватить 'su'. – Onik

ответ

0

Я думаю, что проблема может быть

  1. adb переменная окружения не установлена. Вы можете попробовать полным путем
  2. путь APK должен быть относительно Java проекта CLASSPATH или полного пути
0

использовать путь абсолютного файл, используйте опцию -r, чтобы переустановить приложение, если уже установлено:
Runtime.getRuntime().exec("adb install -r _HERE_AbsoluteFilePath_");
Если вы будете ждать на выполнение:

String[] commands = new String[3];
commands[0] = "adb";
commands[1] = "install";
commands[2] = "-r";//reinstall if already installed
commands[3] = ___HERE_AbsoluteFilePath___;
Process p1 = Runtime.getRuntime().exec(commands, null);
p1.waitFor();

PS: если не удается запустить ADB в окне консоли или терминале - использовать абсолютный путь к файлу для ADB или включать в себя путь к переменной окружения.

Смежные вопросы