Android Studio'ya (Gradle) Kütüphane veya Modül Nasıl Eklenir
İki cümleyle özetlemek gerekirse: settings/project ve/veya build.gradle (Project) dosyasında depoları (google(), mavenCentral(), jitpack) belirtin, ardından app/build.gradle dosyasındaki dependencies bloğuna implementation 'group:artifact:version' satırını ekleyin ve Sync Now düğmesine basın — kütüphane bağlanacaktır.
Hızlı Bağlama Adımları
- Project → app → build.gradle (Module: app) dosyasını açın.
- Kök dizindeki build.gradle veya settings.gradle dosyasında depoların tanımlandığından emin olun: google(), mavenCentral(), gerekirse jitpack (maven { url 'https://jitpack.io' }).
- dependencies bloğuna gerekli satırı ekleyin:
- implementation 'group:name:version' — normal kütüphaneler için.
- api 'group:name:version' — modülden bağımlılıkları dışa aktarmak istiyorsanız.
- kapt 'group:compiler:version' — Kotlin'deki annotation processor'lar için.
- Android Studio'nun üst panelindeki Sync Now düğmesine basın.
- Kodda sınıfları içe aktarın (Alt+Enter → import).
GitHub'daki bir kütüphane JitPack üzerinden kullanılabilir durumdaysa — önce depolara maven { url 'https://jitpack.io' } ekleyin, ardından implementation 'com.github.User:Repo:Tag' kullanın.
Yerel AAR / JAR Dosyalarını ve Modülleri Bağlama
- JAR/AAR: Dosyaları app/libs/ klasörüne koyun, ardından:
- implementation files('libs/library.jar') veya implementation files('libs/library.aar')
- veya depolarda flatDir { dirs 'libs' } tanımlayın ve implementation name: 'library', ext: 'aar' kullanın.
- Yerel modül: File → New → Import Module → yolu belirtin. Ardından app/build.gradle dosyasına: implementation project(':moduleName').
- Çoklu modül: settings.gradle dosyasına ':moduleName' ekleyin, bağımlılıklarda project(':moduleName') kullanın.
Çakışmaları Yönetme ve İnce Ayarlar
- Sürüm çakışmaları: Kök dizindeki build.gradle dosyasında configurations.all { resolutionStrategy { force 'group:artifact:version' } } uygulayabilirsiniz.
- ProGuard/R8 için, kütüphane gerektiriyorsa proguard-rules.pro dosyasına kurallar ekleyin.
- Kotlin annotation'ları için annotationProcessor yerine kapt kullanın ve modülde kotlin-kapt eklentisini etkinleştirin.
- Bir kütüphane eklenti gerektiriyorsa (örneğin Hilt), bunu build.gradle (Project) dosyasına ekleyin ve modülde uygulayın.
Bir bağımlılık ekledikten sonra her zaman Sync Now düğmesine basın. IDE sınıfı görmüyorsa — File → Invalidate Caches & Restart seçeneğini deneyin.
Sık Karşılaşılan Hatalar
- "Cannot resolve symbol" — proje senkronize edilmemiş veya bağımlılık koordinatlarında yazım hatası var.
- Duplicate classes — geçişli bağımlılık çakışması: bağımlılıkta exclude kullanın veya resolutionStrategy uygulayın.
- kapt kullanırken Unresolved reference — kotlin-kapt eklentisi bağlanmamış veya eklenti sürümü yanlış.
- Bağımlılık bulunamadı — repositories bölümüne gerekli depoyu (mavenCentral, google, jitpack) ekleyin.
SSS
- Doğru koordinatı (group:name:version) nasıl öğrenebilirim?
- Kütüphanenin README dosyasına veya sürüm sayfasına bakın; çoğu durumda yazarlar Gradle için örnek yayınlar.
- implementation mi yoksa api mi seçmeliyim?
- implementation, modülünüzün tüketicilerinden geçişli bağımlılıkları gizler; api ise dışa aktarır. Kapsülleme için implementation tercih edin.
- Ek kaynaklar gerektiren (AAR) bir kütüphaneyi nasıl bağlarım?
- AAR dosyasını dosya veya modül olarak bağlayın, kaynakların derlemeye dahil edildiğinden emin olun (Gradle AAR dosyasını otomatik olarak işler).
- Özel bir Maven deposundan kütüphane çekebilir miyim?
- Evet — repositories bölümüne maven { url 'https://repo.url'; credentials { username 'user'; password 'pwd' } } ekleyin.
Kontrol listesi:
- [ ] Kök dizindeki build.gradle veya settings.gradle dosyasına gerekli depolar eklendi.
- [ ] app/build.gradle dosyasında doğru sürümle bağımlılık belirtildi.
- [ ] Proje senkronizasyonu gerçekleştirildi.
- [ ] Sürüm çakışmaları çözüldü (varsa).
- [ ] Gerekirse ProGuard kuralları/kapt eklendi.
Bu, Android Studio'da Gradle aracılığıyla kütüphane ve modül bağlama durumlarının %95'ini kapsar. Belirli bir kütüphane konusunda yardıma ihtiyacınız varsa — koordinatı veya hata metnini gönderin.