Быстрый старт: .NET MAUI на Android (Windows)
Короткий ответ: установите Visual Studio 2022 (17.6+), добавьте workload "Mobile development with .NET" с .NET 8 и Android SDK (API 34+), включите виртуализацию, создайте эмулятор через Android Device Manager и запустите шаблон .NET MAUI App — приложение соберётся и запустится на эмуляторе или устройстве. Ниже — пошагово и без воды.
Требования и подготовка
- Windows 10/11 (19041+), 64‑бит, включена виртуализация (Intel VT‑x / AMD‑V) в BIOS.
- RAM: минимум 8 ГБ (16 ГБ рекомендуется). SSD желателен.
- Visual Studio 2022 v17.6+ с workload "Mobile development with .NET".
- .NET 8 SDK и Android SDK (API 34+ для Android 14).
- Аппаратное ускорение: Hyper‑V или Windows Hypervisor Platform (для Intel/AMD) либо HAXM (если используется).
Если ПК слабый — подключите физическое Android‑устройство по USB и включите USB‑отладку. Это быстрее, чем эмулятор.
Установка Visual Studio и компонентов для MAUI
- Откройте Visual Studio Installer → Modify выбранной установки.
- Выберите workload: .NET Multi‑platform App UI development (Mobile development with .NET).
- В правой панели отметьте:
- .NET 8.0 SDK
- Android SDK (API 34+)
- Android SDK Build‑Tools
- Android Emulator
- Нажмите Modify/Update и дождитесь установки (10–30 минут в зависимости от сети).
- Перезапустите Visual Studio. В Tools → Options → Xamarin → Android Settings проверьте путь к Android SDK (обычно C:\Program Files (x86)\Android\android-sdk).
Проверьте: File → New → Project → .NET MAUI App — шаблон должен отображаться.
Настройка эмулятора Android
- В Visual Studio: Tools → Android → Android Device Manager.
- New Device → выберите профиль (например Pixel 6) с API 34, ABI x86_64.
- Настройте: RAM 4096 МБ, Internal Storage 6 ГБ, Hardware Acceleration включена.
- Сохраните и запустите эмулятор — первая загрузка может занять время (скачивание образа).
Таблица быстрого выбора образа:
| Параметр | Рекомендация |
|---|---|
| API Level | 34 (Android 14) |
| ABI | x86_64 (быстрее на Intel/AMD) |
| RAM | 4–6 ГБ |
| GPU | Host (аппаратное ускорение) |
Если эмулятор не стартует — проверьте включённую виртуализацию в BIOS и установку Hyper‑V/Windows Hypervisor Platform. При ошибке "Emulator process terminated" временно отключите антивирус и обновите драйверы.
Создание и запуск первого проекта
- File → New → Project → .NET MAUI App. Назовите, например, MauiFirstApp.
- Откройте MainPage.xaml — в шаблоне уже будет Label и Button.
- Выберите эмулятор в выпадающем списке рядом с конфигурацией Debug и нажмите Run (F5).
- Проект соберётся, установится и запустится на выбранном устройстве.
Пример обработчика кнопки (MainPage.xaml.cs):
int count = 0;
private void OnCounterClicked(object sender, EventArgs e)
{
CounterBtn.Text = $"Clicked {++count}!";
}
Замечания:
- Первая сборка длится дольше из‑за AOT и установки образа.
- Для ускорения разработки включите XAML Hot Reload: правый тулбар → Enable XAML Hot Reload.
Hot Reload позволяет видеть изменения XAML без полной перезагрузки приложения — значительно экономит время.
Частые ошибки и как их решать
- "Android SDK not found": укажите путь вручную в Tools → Options → Xamarin → Android Settings или переустановите компонент через Installer.
- Эмулятор зависает/крашится: смените образ (API 33), пересоздайте AVD с другим ABI или используйте физическое устройство.
- DEP6200 / UWP/driver issues при установке на устройство: включите Developer Mode на устройстве и установите USB‑драйверы (Windows Device Manager).
- Проблемы с виртуализацией: включите VT‑x/AMD‑V в BIOS, включите Hyper‑V или WHP feature в Windows Features.
FAQ
- Нужно ли macOS для сборки Android‑приложений? Нет — для Android достаточно Windows. Для iOS нужна macOS.
- Как уменьшить время сборки? Включите incremental builds, используйте x86_64 образ и SSD.
- Поддерживает ли MAUI Hot Restart? Да, для быстрых изменений кода включите Hot Reload/Hot Restart (ограничения для нативных изменений остаются).
Этот план позволит подготовить среду и запустить первый .NET MAUI‑приложение для Android за 30–60 минут. Дальше можно изучать Blazor Hybrid, графические API и публикацию APK/AAB.