пятница, 27 июля 2012 г.

Что делать, если не запускается SDK Manager из Android SDK на Windows

Проблема с запуском SDK Manager из Android SDK время от времени периодически возникает. В зависимости от версии SDK и JDK причины могут быть разные. Например, начиная с релиза 17 Android SDK при запуске файла SDK Manager.exe (или AVD Manager.exe) программа не запускается, но запуск из Eclipse - Window - SDK Manager (AVD Manager) работает отлично.

Возникает эта проблема чаще всего на операционной системе Windows7 (64-бит) и решается она, как оказалось, просто.


Для тех, кто не любит много читать, вначале скажу вкратце, как решить эту проблему.

Решение состоит в том, что нужно добавить в системную переменную JAVA_HOME путь, по которому установлен JDK и перезагрузить Windows.

На случай, если кому будет интересно, опишу весь процесс в подробностях далее.


1. Для начала убеждаемся, что JDK у нас установлен.

Ищем на диске папку вида C:\Program Files\Java\jdk1.7.0_04
Это путь до папки с установленным JDK версии 1.7.0(04)
У вас этот путь может быть чуть другой - всё зависит от версии JDK, установленного на вашем компьютере.

2. Добавляем в системную переменную окружения JAVA_HOME путь до папки с установленным JDK

3. Добавляем в системную переменную окружения PATH этот путь, но добавив в конце еще папку \bin

Например, у вас в переменной PATH было:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
После добавления папки с JDK содержимое переменной PATH станет таким:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.7.0_04\bin

4. На всякий случай (для удобства) добавляем в переменную PATH еще и путь до папки, в которой у вас установлен Android SDK, но приписав в конце еще папку \tools

Например, если SDK у вас в папке C:\android-sdk-windows тогда после добавления папки с Android SDK путь станет таким:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.7.0_04\bin;C:\android-sdk-windows\tools

Как же добавить или изменить переменную окружения в Windows7 ?

Идём в Панель управления - System and Security - System (можно просто нажать на клавиатуре Win + Pause/Break)
В окне слева жмём Advanced System Settings
В появившемся окне жмём Enviroment Variables (Переменные Окружения)

В следующем появившемся окне будет две таблички:
верхняя - User Variables (Пользовательские переменные),
нижняя - System Variables (Системные переменные).

Нам нужна нижняя, системная табличка переменных.
В нее и добавляем (или редактируем имеющиеся) нужные нам переменные.

5. После всех вышеприведённых манипуляций ОБЯЗАТЕЛЬНО перезагружаем Windows.

6. Запускаем SDK Manager и AVD Manager (ВНИМАНИЕ!!!) НЕ из папки C:\android-sdk-windows\tools\lib - вы получите ошибку файла "tools\android.bat"

Запускать надо из папки C:\android-sdk-windows - в ней тоже есть файлы SDK Manager.exe и AVD Manager.exe

Вот их и запускаем.

19 комментариев:

  1. Проделал вышеописанную процедуру, но всё равно SDK Manager.exe не запускается. На доли секунды появляется окно командной строки и всё. Ответьте, пожалуйста, в чём ещё может быть причина? Спасибо за ответ.

    ОтветитьУдалить
    Ответы
    1. Внимательно перепроверьте - всё ли вы сделали так как описано?
      Перезагрузите Windows.
      попробуйте сначала запустить коммандную строку (cmd), а уже из окна коммандной строки запустите SDK Manager.exe и посмотрите будет ли выведена какая-либо ошибка.

      Удалить
  2. Спасибо добрый человек, запахало.

    ОтветитьУдалить
  3. "Заработало!" (с)Матроскин
    Спасибо за информативную и актуальную статью.

    ОтветитьУдалить
  4. С некоторыми дополнениями (описал у себя) к действиям заработало.

    ОтветитьУдалить
  5. автор ты тупица! вот кто поймёт "Добавляем в системную переменную окружения JAVA_HOME путь до папки с установленным JDK" вот что это системная переменная?????

    ОтветитьУдалить
    Ответы
    1. Если вам нужно понять как добавить или изменить переменную окружения, то это описано в записи. Прочитайте запись до конца. Этот абзац даже специально выделен отступом и шрифтом.

      Удалить
  6. ТС, помоги пожалуйста! Я дилетант в этом деле, но на скоько понимаю Имя новой системной переменной JAVA_HOME, а значением должен являть путь до папки SDK?

    ОтветитьУдалить
  7. Хм...Сделал как подумал и написано, а все равно на долю сек. появляется окно при запуске SDK Manage.exe
    При запуске из C:\android-sdk-windows\tools\lib Ошибка батника.

    И еще, в средах нужно самому создать PATH, просто у меня уже есть там переменная Path (именно такими буквами). Заранее спасибо за любую помощь!

    ОтветитьУдалить
  8. Проблема решилась копированием файлов Java*.exe из system32 в SysWOW64! :)

    ОтветитьУдалить
    Ответы
    1. СПАСИБО!! Действительно помогло копирование)

      Удалить
    2. Спасибо именно копирование помогло!!!

      Удалить
    3. Огромное спасибо!!! Всё гениальное просто)))

      Удалить
  9. Не один из вышеперечисленных вариантов не помог. Просто запустил sdk\tools\android.bat

    ОтветитьУдалить
  10. Перепробовал все, что описано в советах. Все, что писали в комментариях. Ничего не помогает. Посоветуйте что ещё пожалуйста

    ОтветитьУдалить
  11. Почему не запускается SDK Manager
    Опубликовано 15.09.2013 от antares
    Два часа рылся в по инету в поисках ответа на этот досадный вопрос. Куча советов – пропишите пути туда, пути сюдаа… Все фигня. Пришлось включить голову. :) Если вас тоже мучает эта проблема – вам сюда. Только для Windows 7 x64.

    Решение: лезем в файл …android-sdk/tools/android.bat
    Находим эти две строчки:
    set java_exe=
    call lib\find_java.bat
    Меняем на две такие:
    set java_exe=”c:\Program Files (x86)\Java\jdk1.7.0_01\bin\java.exe”
    rem call lib\find_java.bat

    В первой строке, естественно, подставляем путь до вашей джавы. Наслаждаемся. :)

    В чем была проблема, и как я это обнаружил.
    Тыкался-мыкался, случайно запустил этот батник. Смотрю, пишет
    “C:\Program” не является внутренней или внешней командой бла-бла-бла…
    Начал пробовать подставлять в путь до джавы всякое… В итоге получилось. Как я понял, изначально путь вел на 64х-битную джаву, которая лежит в Program Files/…. Я направил все на 32-х битную. Видимо так надо.

    Кстати, до этого SDK Manager не запускался и из эклипса. После этого – стал запускаться.
    Надеюсь, кому-то этот пост сэкономит время.

    ОтветитьУдалить
  12. Этот комментарий был удален автором.

    ОтветитьУдалить