Как настроить 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

  1. Установите Android Studio и через SDK Manager установите:

    • Platform‑tools (adb)
    • Build‑tools (несколько версий)
    • SDK Platform для нужных API (рекомендуется API 33/34 + нужный проекту)
    • Android SDK Command‑line Tools
  2. Переменные окружения:

    • 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
  3. JDK:

    • Проверяйте требование Gradle/AGP: часто нужен Java 17 или 11. Выставьте JAVA_HOME на установленный JDK и перезапустите IDE/терминал.

Слишком новая версия Java (например, JDK 21) может ломать старые AGP/Gradle. Сначала проверьте совместимость.

  1. Примите лицензии:
    • Выполните 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 cleanflutter pub getflutter 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.

Практический чек‑лист (быстрая последовательность):

  1. Убедиться, что Android Studio + SDK установлены.
  2. Выставить ANDROID_SDK_ROOT и JAVA_HOME, принять лицензии.
  3. Запустить flutter doctor / собрать чистый Unity‑проект.
  4. Синхронизовать версии Gradle/AGP с шаблоном.
  5. Включить AndroidX, настроить multidex при необходимости.
  6. Добавить Facebook App ID в манифест и Key Hashes в консоли Facebook.
  7. Выполнить flutter clean / пересобрать в Unity без ProGuard, затем включать оптимизации.

Следуя этим шагам, вы закроете ~90% типичных проблем сборки Android для Flutter, Unity и Facebook SDK.