Flutter, Unity ve Facebook SDK İçin Android SDK'yı Derleme Hataları Olmadan Nasıl Yapılandırılır
Kısa cevap: Android SDK'yı (platform-tools, build-tools), JDK'yı (genellikle Temurin 11/17) yükleyin, ANDROID_SDK_ROOT değişkenini tanımlayın, lisansları kabul edin, Gradle/AGP sürümlerini yığınınızla senkronize edin, AndroidX'i etkinleştirin ve Facebook App ID'sini manifest dosyasına doğru şekilde ekleyin; bu, derleme hatalarının çoğunu çözecektir. Aşağıda pratik bir kılavuz ve kontrol listesi bulacaksınız.
Android SDK'nın Temel Yapılandırması
-
Android Studio'yu yükleyin ve SDK Manager aracılığıyla şunları kurun:
- Platform-tools (adb)
- Build-tools (birkaç sürüm)
- Gerekli API'ler için SDK Platform (API 33/34 + proje için gerekli olan önerilir)
- Android SDK Command-line Tools
-
Ortam değişkenleri:
- Windows:
ANDROID_SDK_ROOT=C:\Users\<user>\AppData\Local\Android\Sdk - macOS:
export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk - PATH'e
.../Android/sdk/platform-toolsve gerekirse.../Android/sdk/tools/binekleyin
- Windows:
-
JDK:
- Gradle/AGP gereksinimlerini kontrol edin: genellikle Java 17 veya 11 gerekir.
JAVA_HOMEdeğişkenini yüklü JDK'ya yönlendirin ve IDE'yi/terminali yeniden başlatın.
- Gradle/AGP gereksinimlerini kontrol edin: genellikle Java 17 veya 11 gerekir.
Çok yeni bir Java sürümü (örneğin JDK 21) eski AGP/Gradle sürümlerini bozabilir. Önce uyumluluğu kontrol edin.
- Lisansları kabul edin:
flutter doctor --android-licenseskomutunu çalıştırın veya Android Studio'yu başlatın ve ilk açılışta lisansları kabul edin.
Flutter: Yapılandırma ve Yaygın Derleme Hataları
Durum kontrolü: flutter doctor komutunu çalıştırın — Android toolchain bölümünün yeşil olması gerekir.
Yaygın sorunlar ve hızlı çözümler:
- Flutter SDK'yı göremiyor:
ANDROID_SDK_ROOTdeğişkenini kontrol edin, terminali yeniden başlatın ve Android Studio'nun SDK'yı yüklediğinden emin olun. - Gradle/AGP hataları:
android/build.gradle(classpath com.android.tools.build:gradle:...) veandroid/gradle/wrapper/gradle-wrapper.properties(distributionUrl) dosyalarını senkronize edin. En kolayı:flutter create tmpile yeni bir proje oluşturun ve uygun sürümleri kopyalayın. - AndroidX/support çakışmaları:
android/gradle.propertiesdosyasına şunları ekleyin:
android.useAndroidX=true
android.enableJetifier=true
Kütüphaneleri AndroidX uyumlu sürümlere güncelleyin.
- Java:
Unsupported major.minor versionhatası alıyorsanız, gerekli JDK'yı yükleyin veJAVA_HOMEdeğişkenini tanımlayın. - Multidex: 65536 yöntem hatası alıyorsanız,
app/build.gradledosyasında şunu etkinleştirin:
defaultConfig { multiDexEnabled true }
implementation "androidx.multidex:multidex:2.0.1"
Android kısmında herhangi bir değişiklik yaptıktan sonra şunları çalıştırın: flutter clean → flutter pub get → flutter run/flutter build.
Unity ve Facebook SDK: Bağlantı ve Hata Çözümleri
Unity, SDK, NDK ve JDK gerektirir. İşinizi kolaylaştırın: Unity Hub üzerinden Android Build Support modülünü (SDK & NDK Tools + OpenJDK) ekleyin. Alternatif olarak, Preferences → External Tools bölümünde yolları manuel olarak tanımlayın.
Unity — yaygın sorunlar:
- "No Android SDK found" — otomatik yüklemeyi etkinleştirin veya yolu belirtin.
- Gradle/mergeDex hataları: Build System'i (Gradle) ve Player Settings → Other Settings bölümündeki API seviyesini kontrol edin.
- Multidex: mainTemplate.gradle (Assets/Plugins/Android) kullanın ve multidex'i etkinleştirin veya yükü azaltmak için IL2CPP'ye geçiş yapın.
Facebook SDK bağlantısı:
- Flutter için: Eklentileri kullanın (örneğin flutter_facebook_auth),
AndroidManifest.xmldosyasınameta-dataekleyin vefacebook_app_iddeğerinires/values/strings.xmldosyasına girin. - Unity için: Facebook SDK'yı içe aktarın (Asset/Package), eklenti ayarlarında App ID'yi belirtin.
Facebook SDK ile sık karşılaşılan sorunlar:
- No Facebook app id found —
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />satırını ekleyin. - Manifest merger failed — birleşik manifest dosyasını açın, yinelenen
<application>,providerveyaactivityetiketlerini giderin. - ProGuard/R8 obfuscation yöntemleri siliyor — SDK ile birlikte gelen proguard kurallarını ekleyin.
Derleme "sihirli bir şekilde" başarısız oluyorsa, temiz bir proje (Flutter/Unity) oluşturun ve bağımlılıkları adım adım taşıyın; bu şekilde sorunu daha kolay lokalize edebilirsiniz.
Sık Karşılaşılan Hatalar
- Proje Android SDK'yı göremiyor —
ANDROID_SDK_ROOTve PATH değişkenlerini kontrol edin. - Uyumlu olmayan Gradle ve Android Gradle Plugin sürümleri — şablon proje ile senkronize edin.
- Yanlış JDK sürümü — eşikler: çoğunlukla 11/17 gerekir.
- AndroidX/support çakışmaları — AndroidX'i etkinleştirin ve kütüphaneleri güncelleyin.
- Manifest merger failed — eklenti manifest dosyalarındaki yinelemeleri giderin.
- Multidex (65536) — multidex'i etkinleştirin veya bağımlılıkları optimize edin.
- Facebook SDK: Eksik App ID/Key Hashes, manifest çakışmaları, ProGuard kuralları.
SSS
- SDK'nın doğruluğunu hızlıca nasıl kontrol ederim?
flutter doctorveadb devices. Android toolchain hatalar gösteriyorsa — SDK Manager'a gidin ve yolları/lisansları kontrol edin.
- Hangi JDK sürümü daha iyi?
- AGP gereksinimlerine bakın: modern projeler — JDK 17; eski projeler — JDK 11. Temurin/Adoptium kullanın.
- Gradle version mismatch hatası aldığınızda ne yapmalı?
- Aynı Flutter/Unity sürümüyle yeni bir proje oluşturun ve oradan gradle-wrapper.properties ile AGP classpath değerlerini alın.
- Facebook bağlarken duplicate provider hatasını nasıl düzeltirim?
- Android projesini dışa aktarın (veya birleşik manifesti inceleyin), kullanıcı manifest dosyasındaki yinelenen provider'ı silin.
- Jetifier'ı etkinleştirmek gerekir mi?
- Evet, hâlâ support libraries kullanan eski kütüphaneleriniz varsa.
Pratik kontrol listesi (hızlı sıra):
- Android Studio + SDK'nın yüklü olduğundan emin olun.
ANDROID_SDK_ROOTveJAVA_HOMEdeğişkenlerini tanımlayın, lisansları kabul edin.flutter doctorçalıştırın / temiz bir Unity projesi derleyin.- Gradle/AGP sürümlerini şablonla senkronize edin.
- AndroidX'i etkinleştirin, gerekirse multidex'i yapılandırın.
- Facebook App ID'sini manifest dosyasına ve Key Hashes'i Facebook konsoluna ekleyin.
flutter cleançalıştırın / Unity'de ProGuard olmadan yeniden derleyin, ardından optimizasyonları etkinleştirin.
Bu adımları izleyerek, Flutter, Unity ve Facebook SDK için tipik Android derleme sorunlarının ~%90'ını çözmüş olursunuz.