Как настроить Android SDK для Flutter, Unity и Facebook SDK без ошибок сборки
Краткий ответ: установите Android SDK (platform‑tools, build‑tools), JDK (обычно Temurin 11/17), пропишите ANDROID_SDK_ROOT, примите лицензии, синхронизируйте версии Gradle/AGP с вашим стеком, включите AndroidX и корректно вставьте Facebook App ID в манифест — это решит большинство ошибок сборки. Ниже — практическая инструкция и чек‑лист.
Базовая настройка Android SDK
-
Установите Android Studio и через SDK Manager установите:
- Platform‑tools (adb)
- Build‑tools (несколько версий)
- SDK Platform для нужных API (рекомендуется API 33/34 + нужный проекту)
- Android SDK Command‑line Tools
-
Переменные окружения:
- Windows:
ANDROID_SDK_ROOT=C:\Users\<user>\AppData\Local\Android\Sdk - macOS:
export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk - PATH добавьте
.../Android/sdk/platform-toolsи при необходимости.../Android/sdk/tools/bin
- Windows:
-
JDK:
- Проверяйте требование Gradle/AGP: часто нужен Java 17 или 11. Выставьте
JAVA_HOMEна установленный JDK и перезапустите IDE/терминал.
- Проверяйте требование Gradle/AGP: часто нужен Java 17 или 11. Выставьте
Слишком новая версия Java (например, JDK 21) может ломать старые AGP/Gradle. Сначала проверьте совместимость.
- Примите лицензии:
- Выполните
flutter doctor --android-licensesили запустите Android Studio и согласитесь с лицензиями при первом старте.
- Выполните
Flutter: настройка и типовые ошибки сборки
Проверка состояния: выполните flutter doctor — раздел Android toolchain должен быть зелёным.
Типичные проблемы и быстрые решения:
- Flutter не видит SDK: проверьте
ANDROID_SDK_ROOT, перезапустите терминал, убедитесь, что Android Studio установил SDK. - Ошибки Gradle/AGP: синхронизируйте
android/build.gradle(classpath com.android.tools.build:gradle:...) иandroid/gradle/wrapper/gradle-wrapper.properties(distributionUrl). Проще: создайте новый проектflutter create tmpи скопируйте подходящие версии. - Конфликты AndroidX/support: в
android/gradle.propertiesдобавьте:
android.useAndroidX=true
android.enableJetifier=true
Обновите библиотеки до AndroidX‑совместимых версий.
- Java: если видите
Unsupported major.minor version, установите требуемую JDK и пропишитеJAVA_HOME. - Multidex: если ошибка про 65536 методов, в
app/build.gradleвключите:
defaultConfig { multiDexEnabled true }
implementation "androidx.multidex:multidex:2.0.1"
После любых изменений в Android-части запускайте: flutter clean → flutter pub get → flutter run/flutter build.
Unity и Facebook SDK: подключение и решение ошибок
Unity требует SDK, NDK, JDK. Упростите жизнь: через Unity Hub добавьте модуль Android Build Support (SDK & NDK Tools + OpenJDK). Либо вручную пропишите пути в Preferences → External Tools.
Unity — типичные проблемы:
- "No Android SDK found" — включите автоустановку или укажите путь.
- Ошибки Gradle/mergeDex: проверьте Build System (Gradle) и уровень API в Player Settings → Other Settings.
- Multidex: используйте mainTemplate.gradle (Assets/Plugins/Android) и включите multidex, либо перейдите на IL2CPP для снижения нагрузки.
Подключение Facebook SDK:
- Для Flutter: используйте плагины (например, flutter_facebook_auth), добавьте
meta-dataвAndroidManifest.xmlиfacebook_app_idвres/values/strings.xml. - Для Unity: импортируйте Facebook SDK (Asset/Package), укажите App ID в настройках плагина.
Частые проблемы с Facebook SDK:
- No Facebook app id found — добавьте
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />. - Manifest merger failed — откройте итоговый манифест, устраните дубликаты
<application>,providerилиactivity. - ProGuard/R8 обфускация удаляет методы — добавьте правила proguard, поставляемые с SDK.
Если сборка падает "магически", создайте чистый проект (Flutter/Unity) и по шагам переносите зависимости — так проще локализовать проблему.
Частые ошибки
- Проект не видит Android SDK — проверьте
ANDROID_SDK_ROOTи PATH. - Несовместимые версии Gradle и Android Gradle Plugin — синхронизируйте с шаблонным проектом.
- Неправильная версия JDK — пороги: 11/17 чаще всего требуются.
- Конфликты AndroidX/support — включите AndroidX и обновите библиотеки.
- Manifest merger failed — устраните дубли в манифестах плагинов.
- Multidex (65536) — включите multidex или оптимизируйте зависимости.
- Facebook SDK: отсутствует App ID/Key Hashes, конфликт манифестов, правила ProGuard.
FAQ
- Как быстро проверить корректность SDK?
flutter doctorиadb devices. Если Android toolchain показывает ошибки — идём в SDK Manager и проверяем пути/лицензии.
- Какая версия JDK лучше?
- Смотрите требования AGP: современные проекты — JDK 17; старые — JDK 11. Используйте Temurin/Adoptium.
- Что делать при ошибке Gradle version mismatch?
- Создайте новый проект той же версии Flutter/Unity и возьмите оттуда gradle-wrapper.properties и classpath AGP.
- Как исправить duplicate provider при подключении Facebook?
- Экспортируйте Android‑проект (или просмотрите merged manifest), удалите дублирующий provider в пользовательском манифесте.
- Нужно ли включать Jetifier?
- Да, если у вас старые библиотеки, которые ещё используют support libraries.
Практический чек‑лист (быстрая последовательность):
- Убедиться, что Android Studio + SDK установлены.
- Выставить
ANDROID_SDK_ROOTиJAVA_HOME, принять лицензии. - Запустить
flutter doctor/ собрать чистый Unity‑проект. - Синхронизовать версии Gradle/AGP с шаблоном.
- Включить AndroidX, настроить multidex при необходимости.
- Добавить Facebook App ID в манифест и Key Hashes в консоли Facebook.
- Выполнить
flutter clean/ пересобрать в Unity без ProGuard, затем включать оптимизации.
Следуя этим шагам, вы закроете ~90% типичных проблем сборки Android для Flutter, Unity и Facebook SDK.