Ошибка 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 |
|---|---|
| Windows | C:\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_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
Настройка 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, если она входит в ваш набор инструментов.