Создать новый AVD из командной строки в java - PullRequest
2 голосов
/ 31 января 2020

Я создаю метод следующим образом:

private boolean createAvd(Account account) throws InterruptedException, IOException {
        boolean isCreated = true;
        InputStreamReader inputStreamReader = null;
        String commandToCreate ="echo no | avdmanager create avd -n "+account.getId()+" -k "+SYSTEM_IMAGE+"";
        ProcessBuilder processBuilder = new 
        ProcessBuilder("avdmanager.bat "  , commandToCreate );
        processBuilder.directory(new File(PATH_AVD_MANAGER));
        java.util.List<String> list =processBuilder.command();
        for (String string : list) {
            System.out.println("Command : "+ string);
        }
        Process process = processBuilder.start();
        process.waitFor(20, TimeUnit.SECONDS);
    if(process.exitValue() == 0) {
        inputStreamReader = new InputStreamReader(process.getInputStream());
    }else {
        inputStreamReader = new InputStreamReader(process.getErrorStream());
        isCreated = false;
    }
    System.out.println("The exit excute value is :"+ process.exitValue());
    BufferedReader input = new BufferedReader(inputStreamReader);
    String line = null;
    try {
        while ((line = input.readLine()) != null) {
                System.out.println(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
        isCreated = false;
    }
    return isCreated;
    }


, и когда я запускаю код, я получаю эту ошибку:

Команда: avdmanager.bat Команда: эхо нет | avdmanager create avd -n 15068894 -k "system-images; android -23; google_apis; x86" Выходное значение: 255 Синтаксис команды неверен. не удалось создать AVD

следующая команда:

echo no | avdmanager create avd -n 15068894 -k "system-images;android-23;google_apis;x86"

работает нормально и создает avd, но метод не может создать avd

echo no для ответа на вопрос avdmanager Do you wish to create a custom hardware profile? [no] Может кто-нибудь сказать мне, что я пропустил?

...