Avatar ·

Установка Android SDK не видит JDK на Windows 7 x64 (JDK 6)

Всем привет! Я новичок в разработке под Android, пытаюсь настроить среду на Windows 7 (64-битная версия). Установил JDK 6 (jdk-6u45-windows-x64.exe) в папку `C:\Program Files\Java\jdk1.6.0_45`. Потом скачал Android SDK (installer_r24.4.1-windows.exe) и запустил установку. Но на шаге, где мастер установки просит указать папку с JDK, я указываю путь `C:\Program Files\Java\jdk1.6.0_45`, а он выдаёт ошибку: "No Java Development Kit (JDK) found. Please ensure that JDK is installed correctly." Я проверил — в папке есть `bin`, `lib`, `include`, всё на месте. Переустанавливал JDK дважды, перезагружал компьютер — не помогает. Пробовал также указывать путь через `JAVA_HOME` — создал системную переменную `JAVA_HOME = C:\Program Files\Java\jdk1.6.0_45`, добавил `%JAVA_HOME%\bin` в `PATH`. Но Android SDK всё равно не видит JDK. В командной строке `java -version` работает, показывает версию 1.6.0_45. А `javac -version` тоже работает. В чём может быть проблема? Может, из-за того, что у меня 64-битная система и JDK тоже 64-битный? Или нужно ставить 32-битный JDK? Или дело в разрядности Android SDK? Подскажите, пожалуйста, как это исправить. Заранее спасибо! Вот пример кода, который я написал для проверки (простой HelloWorld на Java): ```java public class Test { public static void main(String[] args) { System.out.println("Hello, Android!"); } } ``` Он компилируется и запускается без проблем. Но Android SDK упорно не хочет видеть JDK. <<>>

Решение: проблема в разрядности JDK и SDK

Здравствуйте! Вы столкнулись с очень распространённой проблемой, особенно на Windows 7 x64. Дело в том, что Android SDK (установщик .exe) часто является 32-битным приложением, даже если вы скачали 64-битную версию JDK. 32-битная программа на Windows 7 x64 не может корректно обнаружить 64-битный JDK из-за особенностей реестра и путей поиска.

Вот пошаговое решение, которое гарантированно работает:

Шаг 1: Установите 32-битный JDK (рекомендуется)

Скачайте и установите 32-битную версию JDK 6 или 7 (например, jdk-6u45-windows-i586.exe). Путь установки по умолчанию: C:\Program Files (x86)\Java\jdk1.6.0_45. После установки:

  • Удалите старую переменную JAVA_HOME или укажите новый путь: C:\Program Files (x86)\Java\jdk1.6.0_45
  • Убедитесь, что в PATH есть %JAVA_HOME%\bin
  • Перезагрузите компьютер

После этого запустите установку Android SDK — он должен увидеть JDK.

Шаг 2: Альтернатива — использование 64-битного JDK с ручной настройкой

Если вы хотите оставить 64-битный JDK, сделайте следующее:

  1. Создайте системную переменную JAVA_HOME со значением C:\Program Files\Java\jdk1.6.0_45
  2. Добавьте в PATH (в начало): C:\Program Files\Java\jdk1.6.0_45\bin
  3. Важно! Добавьте также путь к 32-битной JRE (если есть): C:\Program Files (x86)\Java\jre6\bin (она часто ставится вместе с 32-битным JDK)
  4. Скачайте не установщик .exe, а ZIP-архив Android SDK (SDK Tools Only) с официального сайта. Распакуйте его в C:\Android\sdk
  5. Запустите SDK Manager.exe из папки — он должен корректно определить JDK

Пример проверки в командной строке:

echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_45
java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Шаг 3: Дополнительные проверки

Иногда проблема в правах доступа. Запустите установщик Android SDK от имени администратора (правой кнопкой мыши -> "Запуск от имени администратора"). Также проверьте, что в реестре Windows есть запись:

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.6
CurrentVersion = "1.6"
JavaHome = "C:\Program Files\Java\jdk1.6.0_45"

Если записи нет, создайте её вручную (для 64-битного JDK путь может быть в SOFTWARE\Wow6432Node для 32-битных программ).

Итог

Самый надёжный способ для Windows 7 x64 — установить 32-битный JDK 6 или 7. Это решит проблему в 99% случаев. Если вам критичен 64-битный JDK, используйте ZIP-версию Android SDK и настройте переменные окружения вручную. После этого ваш код будет компилироваться и Android SDK заработает.

Пример успешного запуска после решения:

android.bat
[INFO] Detected Java version: 1.6
[INFO] Found Android SDK at C:\Android\sdk
<<>>

Альтернативное решение: обновление Android SDK Tools и установка JDK 7

Коллега выше верно указал на разрядность, но есть ещё один нюанс. Старые версии Android SDK (до r25) имели проблемы с JDK 6 на Windows 7 x64 из-за устаревших библиотек. Попробуйте обновить Android SDK Tools до последней версии, совместимой с JDK 6, или установите JDK 7.

Что делать:

  1. Установите JDK 7 (32-битный) — скачайте jdk-7u80-windows-i586.exe (последняя версия JDK 7). Установите в C:\Program Files (x86)\Java\jdk1.7.0_80
  2. Обновите переменные:
    • JAVA_HOME = C:\Program Files (x86)\Java\jdk1.7.0_80
    • В PATH добавьте %JAVA_HOME%\bin
  3. Удалите старый Android SDK полностью (через "Установку и удаление программ")
  4. Скачайте свежий установщик Android SDK с официального сайта (выберите версию для Windows, она 32-битная)
  5. Запустите установку от имени администратора

JDK 7 имеет лучшую совместимость с Android SDK r24-r25. Если после этого проблема останется, попробуйте использовать Android Studio (она включает встроенный SDK Manager и не требует ручной установки JDK — только JRE). Это самый простой путь для начинающих.

Пример проверки после установки JDK 7:

javac -version
javac 1.7.0_80

После этого Android SDK должен увидеть JDK без дополнительных манипуляций.