Android SDK Root: что это такое и как правильно указать путь к SDK

Ошибка SDK location not found или сообщение «Android SDK is missing» при первом запуске проекта почти всегда означает одно: среда разработки не может найти корневую папку Android SDK — тот самый SDK root. Это каталог, в котором лежат платформенные инструменты, компиляторы, эмуляторы и системные образы, без которых сборка приложения невозможна.

В этой статье разберём, что такое Android SDK root, где он располагается по умолчанию в разных операционных системах, как узнать текущий путь и как правильно прописать переменные окружения ANDROID_HOME и ANDROID_SDK_ROOT, чтобы Gradle, Android Studio и командная строка видели SDK одинаково.

Что такое Android SDK root и зачем он нужен

SDK root (корень SDK) — это путь к корневой директории Android SDK на вашем компьютере. Внутри неё находятся подкаталоги platform-tools, build-tools, platforms, emulator и другие компоненты, которые загружаются через SDK Manager.

Именно по этому пути система сборки определяет, где искать adb, компилятор ресурсов и нужную версию платформы Android. Если путь не задан или указывает на пустую папку, вы получите ошибку ещё на этапе синхронизации проекта.

  • 🔧 platform-tools — утилиты adb и fastboot для работы с устройствами;
  • 📦 build-tools — инструменты компиляции и упаковки APK/AAB;
  • 📱 platforms — платформы android-XX для каждого уровня API;
  • 🖥️ emulator и system-images — эмулятор и образы виртуальных устройств.

Где находится SDK root по умолчанию

Стандартное расположение зависит от операционной системы. При установке Android Studio мастер предлагает путь по умолчанию, и большинство разработчиков его не меняют.

ОСТиповой путь к SDK root
WindowsC:\Users\Имя\AppData\Local\Android\Sdk
macOS/Users/имя/Library/Android/sdk
Linux/home/имя/Android/Sdk
Android Studio (свой путь)задаётся в настройках SDK Manager

Обратите внимание: папка AppData в Windows скрытая. Чтобы увидеть её в проводнике, включите отображение скрытых элементов или вставьте путь напрямую в адресную строку.

⚠️ Внимание: не размещайте SDK в папках с кириллицей или пробелами в пути (например, внутри Мои документы). Часть инструментов сборки и сторонних плагинов некорректно обрабатывает такие пути, что приводит к трудно диагностируемым ошибкам.

Как узнать текущий путь к SDK в Android Studio

Самый быстрый способ проверить, куда указывает SDK root, — посмотреть в настройках самой среды. Откройте File → Settings (на macOS — Android Studio → Preferences), затем перейдите в раздел Languages & Frameworks → Android SDK. В верхней части окна будет поле Android SDK Location — это и есть ваш SDK root.

Там же можно изменить расположение, нажав Edit, и докачать недостающие компоненты на вкладках SDK Platforms и SDK Tools. Если поле пустое или подсвечено красным — среда SDK не видит, и проект собираться не будет.

📊 Где вы чаще всего сталкивались с проблемой пути к Android SDK?
При первой настройке Android Studio
При сборке проекта через Gradle
В Flutter / React Native
В CI/CD на сервере

Переменные окружения ANDROID_HOME и ANDROID_SDK_ROOT

Для работы из командной строки и сторонних инструментов (например, Flutter или React Native) одного пути в настройках Android Studio недостаточно. Нужно задать системные переменные окружения.

Исторически использовалась переменная ANDROID_HOME. Позднее Google ввела ANDROID_SDK_ROOT как более явное имя. На практике многие инструменты проверяют обе, поэтому надёжнее задать обе переменные с одинаковым значением — путём к вашему SDK root.

В Windows это делается через Система → Дополнительные параметры системы → Переменные среды. В macOS и Linux переменные добавляются в файл ~/.bashrc, ~/.zshrc или ~/.profile:

export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk

export ANDROID_HOME=$ANDROID_SDK_ROOT

export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools

После правки файла выполните source ~/.zshrc (или перезапустите терминал) и проверьте результат командой adb version. Если утилита запустилась — путь настроен верно.

☑️ Проверка настройки SDK root

Выполнено: 0 / 4

Настройка local.properties в проекте

Gradle ищет SDK не только в переменных окружения, но и в файле local.properties в корне проекта. Там прописывается строка вида sdk.dir=путь_к_sdk. Этот файл создаётся автоматически при открытии проекта в Android Studio.

Важный нюанс: local.properties не должен попадать в систему контроля версий, потому что путь к SDK у каждого разработчика свой. Убедитесь, что файл добавлен в .gitignore — иначе коллеги получат конфликт путей при клонировании репозитория.

Типичные ошибки и их решение

Разберём симптомы, которые чаще всего связаны именно с неверным SDK root. Действуйте от простого к сложному: сначала проверьте путь, потом переменные, и только затем переустанавливайте компоненты.

  • SDK location not found — отсутствует local.properties и не заданы переменные окружения; создайте файл с sdk.dir или настройте ANDROID_SDK_ROOT;
  • Failed to find Platform SDK — в SDK root нет нужной платформы; установите её через SDK Manager;
  • adb не распознаётся в терминале — каталог platform-tools не добавлен в PATH;
  • Ошибка после переноса SDK — устарели пути в local.properties и настройках IDE, обновите их вручную.

⚠️ Внимание: не копируйте папку SDK между компьютерами простым переносом файлов без проверки. Часть компонентов привязана к путям и правам доступа — надёжнее установить SDK штатно через SDK Manager на новой машине.

Как проверить путь без Android Studio

В Windows выполните в командной строке: echo %ANDROID_SDK_ROOT%. В macOS/Linux: echo $ANDROID_SDK_ROOT. Пустой вывод означает, что переменная не задана. Также можно проверить наличие папки: в Windows — dir "%LOCALAPPDATA%\Android\Sdk", в macOS — ls ~/Library/Android/sdk.

SDK root в Flutter и React Native

Кроссплатформенные фреймворки особенно чувствительны к настройке SDK root, потому что не используют встроенные механизмы Android Studio. Flutter, например, при выполнении flutter doctor явно показывает, найден ли Android SDK, и по какому пути.

Если flutter doctor сообщает об отсутствии SDK, хотя Android Studio работает нормально, причина почти всегда в незаданной переменной ANDROID_SDK_ROOT или ANDROID_HOME. Задайте её, перезапустите терминал и повторите проверку. Дополнительно Flutter позволяет указать путь вручную командой flutter config --android-sdk путь_к_sdk.

Часто задаваемые вопросы

Чем ANDROID_HOME отличается от ANDROID_SDK_ROOT?

Функционально — ничем: обе переменные должны указывать на корневую папку SDK. ANDROID_HOME — более старое имя, ANDROID_SDK_ROOT появилось позже. Разные инструменты проверяют разные переменные, поэтому рекомендуется задавать обе с одинаковым значением.

Можно ли хранить SDK на внешнем диске?

Технически да — достаточно указать соответствующий путь в настройках Android Studio и переменных окружения. Однако учитывайте скорость диска: сборка и запуск эмулятора с медленного носителя будут заметно медленнее. Также путь не должен содержать кириллицу и пробелы.

Почему Gradle не видит SDK, хотя Android Studio работает?

Android Studio хранит путь в собственных настройках, а Gradle при сборке из командной строки ищет sdk.dir в local.properties или переменную ANDROID_SDK_ROOT. Проверьте оба варианта — обычно проблема решается созданием файла local.properties с корректным путём.

Нужно ли переустанавливать SDK при смене папки?

Нет. Достаточно переместить папку, затем обновить путь в настройках Android Studio, в переменных окружения и в файле local.properties каждого проекта. После этого выполните синхронизацию Gradle и проверьте работу adb.

Как узнать, какие компоненты установлены в SDK root?

Откройте SDK Manager в Android Studio на вкладках SDK Platforms и SDK Tools — там отображаются все установленные и доступные компоненты. Из командной строки список пакетов можно посмотреть утилитой sdkmanager --list_installed, если она входит в ваш набор инструментов.