Сообщение No Android SDK instance matching the C:\Program Files (x86)\Android\android-sdk path появляется в Visual Studio при сборке проектов Xamarin.Android или .NET MAUI, когда среда разработки не находит установленный Android SDK по пути, записанному в её настройках. Чаще всего это происходит после переустановки Windows, переноса SDK в другую папку, обновления Visual Studio или ручного изменения переменных среды.
Сама по себе ошибка не означает, что SDK удалён: нередко файлы на месте, но IDE смотрит не туда. Разберёмся, как проверить фактическое расположение SDK, где Visual Studio хранит ссылку на него и как устранить рассинхронизацию без переустановки всей среды разработки.
Что означает эта ошибка и почему она возникает
Visual Studio при работе с Android-проектами опирается на конкретный путь к Android SDK, заданный в настройках. Если по этому пути отсутствует корректная структура каталогов SDK (папки platforms, build-tools, platform-tools), среда выдаёт сообщение о том, что ни один экземпляр SDK не соответствует указанному расположению.
Типичные причины рассинхронизации:
- 🔧 SDK был перемещён или удалён вручную, а путь в настройках Visual Studio остался прежним.
- 📁 В настройках указан путь
C:\Program Files (x86)\Android\android-sdk, но фактически SDK установлен в профиле пользователя, например в%LOCALAPPDATA%\Android\Sdk. - 🔄 После обновления Visual Studio или установки нового рабочего нагрузки (workload) путь был сброшен на значение по умолчанию.
- 👤 Проект открыт под другой учётной записью Windows, где переменные среды указывают на другую папку.
- 🧩 Папка SDK существует, но не содержит обязательных компонентов — например, установка была прервана.
⚠️ Внимание: путь C:\Program Files (x86)\Android\android-sdk исторически использовался установщиком Xamarin, однако современные версии Visual Studio и Android Studio по умолчанию ставят SDK в каталог пользователя. Не предполагайте, что SDK обязан лежать именно в Program Files — сначала проверьте, где он реально находится.
Шаг 1. Определите фактическое расположение Android SDK
Прежде чем менять настройки, нужно выяснить, где SDK установлен на самом деле. Самый быстрый способ — поиск по характерным папкам. Откройте проводник и проверьте несколько типовых расположений:
- 📂
C:\Program Files (x86)\Android\android-sdk— классический путь времён Xamarin. - 📂
%LOCALAPPDATA%\Android\Sdk— стандартное расположение для Android Studio и новых версий Visual Studio. - 📂
%PROGRAMFILES%\Android\Sdkили диск D:, если вы устанавливали SDK вручную.
Признак того, что папка — это действительно SDK: внутри должны присутствовать каталоги platforms, platform-tools и желательно build-tools. Если папка android-sdk существует, но пуста или содержит только часть файлов, её проще переустановить, чем восстанавливать вручную.
Ещё один способ проверки — командная строка. Выполните:
dir "%LOCALAPPDATA%\Android\Sdk\platform-tools"
Если команда вернула список файлов, включая adb.exe, SDK находится именно там. Если появилось сообщение «Файл не найден», проверяйте следующий вариант расположения.
Шаг 2. Укажите правильный путь в настройках Visual Studio
Когда фактическое расположение SDK известно, нужно «показать» его среде разработки. В Visual Studio путь настраивается в нескольких местах, и важно не пропустить ни одного.
Основной путь задаётся через меню Tools → Options → Xamarin → Android Settings (в зависимости от версии студии раздел может называться иначе). В поле Android SDK Location укажите найденный на предыдущем шаге каталог. Рядом обычно настраиваются пути к Java SDK (JDK) и Android NDK — если SDK переехал, проверьте и их.
☑️ Приведение путей в порядок
Дополнительно проверьте переменные среды Windows. Если переменная ANDROID_HOME или ANDROID_SDK_ROOT задана и указывает на старый путь C:\Program Files (x86)\Android\android-sdk, некоторые инструменты сборки будут использовать именно её, игнорируя настройки IDE. Откройте Система → Дополнительные параметры системы → Переменные среды и приведите значения в соответствие с реальным расположением SDK либо удалите устаревшие переменные.
⚠️ Внимание: после изменения переменных среды недостаточно перезапустить Visual Studio — в некоторых случаях требуется повторный вход в систему Windows, чтобы новые значения подхватились всеми процессами, включая фоновые службы сборки.
Шаг 3. Установите недостающие компоненты SDK
Бывает, что путь указан верно, папка существует, но ошибка сохраняется, потому что в SDK не хватает обязательных компонентов. Проверить и доустановить их можно через Android SDK Manager, встроенный в Visual Studio: Tools → Android → Android SDK Manager.
Минимально необходимый набор для сборки Xamarin/Android-проекта обычно включает:
- 🛠 Android SDK Platform нужной версии API (та, что указана в свойствах проекта как Target Framework).
- 🛠 Android SDK Build-Tools — без них сборка невозможна в принципе.
- 🛠 Android SDK Platform-Tools — содержит
adbи другие утилиты развёртывания. - 🛠 Android Emulator и системные образы — если планируется отладка на эмуляторе.
Если SDK Manager не открывается или показывает пустой список, возможная причина — повреждённая конфигурация репозиториев или отсутствие прав на запись в папку SDK. В таком случае попробуйте запустить Visual Studio от имени администратора либо перенести SDK в каталог пользователя, где проблем с правами нет.
Сравнение вариантов решения
Разные сценарии требуют разных действий. Таблица ниже поможет быстро выбрать подходящий путь в зависимости от вашей ситуации.
| Ситуация | Действие | Ожидаемый результат |
|---|---|---|
| SDK есть, но в другой папке | Указать правильный путь в настройках Visual Studio | Ошибка исчезает сразу после перезапуска IDE |
| Папка SDK пуста или повреждена | Доустановить компоненты через SDK Manager | Сборка проходит после установки платформ и build-tools |
| SDK не установлен вообще | Установить через Visual Studio Installer (рабочая нагрузка Mobile development) | Появляется полноценный SDK по стандартному пути |
| Конфликт переменных среды | Исправить или удалить ANDROID_HOME / ANDROID_SDK_ROOT | Инструменты сборки используют корректный SDK |
| Несколько SDK на одном ПК | Оставить один актуальный, везде указать его путь | Исключается путаница между экземплярами |
Обратите внимание на последний сценарий: наличие двух-трёх копий SDK (от Android Studio, от старого Xamarin, от ручной установки) — частый источник проблем. Один проект должен собираться одним экземпляром SDK, и путь к нему должен совпадать во всех настройках: IDE, переменных среды и конфигурационных файлах проекта.
Где Visual Studio хранит путь к SDK помимо Options
Кроме диалога Options, ссылки на SDK могут встречаться в пользовательских настройках (файлы в %APPDATA%\Microsoft\VisualStudio) и в свойствах конкретного проекта. Если после смены пути ошибка остаётся только в одном решении, закройте IDE, удалите скрытые папки .vs и bin/obj в каталоге проекта и откройте решение заново — это заставит Visual Studio перечитать конфигурацию.
Если ничего не помогло: переустановка SDK
Когда пути выверены, а сборка по-прежнему не находит SDK, самый надёжный вариант — чистая переустановка. Удалите папку SDK вручную, затем откройте Visual Studio Installer, нажмите «Изменить» для вашей версии студии и убедитесь, что установлена рабочая нагрузка Mobile development with .NET (или Xamarin для старых версий) вместе с компонентом Android SDK.
После установки не спешите запускать сборку: сначала откройте SDK Manager и убедитесь, что платформа нужного уровня API и build-tools присутствуют. Затем проверьте, что путь в настройках совпадает с тем, куда инсталлятор реально разместил файлы — он может отличаться от ожидаемого C:\Program Files (x86)\Android\android-sdk.
Часто задаваемые вопросы
Можно ли просто создать папку C:\Program Files (x86)\Android\android-sdk и скопировать туда SDK?
Да, это рабочий вариант: если скопировать в эту папку полноценный SDK с каталогами platforms, platform-tools и build-tools, Visual Studio найдёт его по старому пути. Однако убедитесь, что у системы есть права на запись в Program Files (x86) — иначе SDK Manager не сможет обновлять компоненты. Более надёжная альтернатива — поменять путь в настройках на фактическое расположение SDK.
Ошибка появляется только в одном проекте, остальные собираются нормально. В чём дело?
Вероятно, в каталоге этого проекта остался устаревший кэш конфигурации. Закройте Visual Studio, удалите скрытую папку .vs, а также каталоги bin и obj внутри проекта, затем откройте решение заново. Если не помогло, проверьте файл .csproj на предмет жёстко прописанных путей к SDK.
Нужно ли прописывать переменную ANDROID_HOME вручную?
Для работы Visual Studio это не обязательно — IDE берёт путь из собственных настроек. Переменная имеет значение для инструментов командной строки (Gradle, утилиты SDK), которые вызываются вне IDE. Если вы ей пользуетесь, следите, чтобы она указывала на тот же SDK, что и настройки студии.
После обновления Visual Studio ошибка вернулась. Это нормально?
Крупные обновления иногда сбрасывают пользовательские пути к SDK на значения по умолчанию. Проверьте раздел Tools → Options → Xamarin → Android Settings и при необходимости укажите свой путь заново. Сам SDK при этом обычно не удаляется — теряется только ссылка на него.
Подходит ли SDK, установленный Android Studio, для Visual Studio?
Да, это тот же самый Android SDK. Достаточно указать в настройках Visual Studio путь, который использует Android Studio (обычно %LOCALAPPDATA%\Android\Sdk). Единственное замечание: следите, чтобы обе среды не пытались одновременно обновлять одни и те же компоненты — это может приводить к конфликтам файлов.