Android Studio'da Gradle Bağımlılıklarıyla Çalışma

Kerem Aydın·7 Temmuz 2026·⏱3 dk

Kısaca özetlemek gerekirse: Kütüphaneleri build.gradle(.kts) içindeki dependencies bloğu aracılığıyla ekleyin; versions, BOM gibi eklentiler ve merkezi yönetim (Version Catalog) ile sürümleri güncelleyin; exclusion, force veya resolutionStrategy kullanarak çatışmaları çözün ve ./gradlew :dependencies komutuyla teşhis yapın.

Bağımlılıklarla çalışmak tekrarlayan bir dizi işlemden oluşur: koordinatları bulma, bunları modüle ekleme, senkronize etme ve test etme. Aşağıda kısa adım adım talimatlar ve hazır komutlar yer almaktadır.

İçindekiler {{TOC_AUTOMATIC}}

Kütüphaneleri Nasıl Eklersiniz

  1. Kütüphane dokümantasyonundan koordinatları (group:artifact:version) bulun.
  2. Kök dizinde depoların bağlı olduğundan emin olun (settings.gradle.kts veya build.gradle.kts): google(), mavenCentral().
  3. Modüle bağımlılığı ekleyin (Kotlin DSL önerilir):
dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
    implementation("com.squareup.retrofit2:retrofit:2.11.0")
    implementation("com.squareup.retrofit2:converter-gson:2.11.0")
}
  1. "Sync Project with Gradle Files" düğmesine tıklayın ve Build > Make Project işlemini gerçekleştirin.
  2. Kütüphanenin Project Structure > Dependencies bölümünde göründüğünü ve çalışma zamanında çalıştığını doğrulayın.

Kotlin DSL (build.gradle.kts) kullanın: otomatik tamamlama sunar ve daha az sözdizimi hatası yapmanıza olanak tanır.

Bağımlılıkları Güvenli Şekilde Nasıl Güncellersiniz

Otomasyon ve aşamalı yaklaşım, başarılı bir güncelleme için anahtar unsurlardır.

  • Araçlar:

    • Raporlama için versions eklentisi (com.github.ben-manes.versions): ./gradlew dependencyUpdates
    • Gradle/AGP eklentisini güncellemek için Android Studio'daki AGP Upgrade Assistant.
    • Uygun sürüm kümeleri için BOM (örneğin Firebase için): implementation(platform("com.google.firebase:firebase-bom:VERSION")).
    • Sürümlerin merkezi yönetimi için Version Catalog (libs.versions.toml).
  • Süreç:

    1. Her seferinde 1–2 kütüphaneyi güncelleyin.
    2. Değişiklik günlüğünü (changelog) okuyun ve CI/yerel testleri çalıştırın.
    3. Bir şey bozulursa — VCS üzerinden geri alın.

Eklentinin kök build.gradle.kts dosyasında kullanım örneği:

plugins {
    id("com.github.ben-manes.versions") version "0.51.0"
}

Çalıştırma: ./gradlew dependencyUpdates

Üretim ortamında her şeyi aynı anda yükseltmeyin — aşamalı olarak ve testlerle ilerleyin.

Gradle Çatışmalarını Nasıl Teşhis Edip Çözersiniz

Tipik belirtiler: Duplicate class, NoSuchMethodError, Version mismatch, Resolution failed.

Teşhis adımları:

  • Bağımlılık ağacını inceleyin: ./gradlew :app:dependencies --configuration implementation
  • Ayrıntılar için --stacktrace ile derleme yapın: ./gradlew assembleDebug --stacktrace

Temel çözüm yolları:

  1. Zorunlu sürüm (force):
dependencies {
    implementation("com.google.code.gson:gson:2.10.1")
}
configurations.all {
    resolutionStrategy {
        force("com.google.code.gson:gson:2.10.1")
    }
}
  1. Geçişli bağımlılıkların hariç tutulması:
implementation("some.library:artifact:1.0") {
    exclude(group = "com.google.code.gson", module = "gson")
}
  1. Modül kümeleri için BOM ve tek bir sürüm belirleme noktası.
  2. Sürüm farklılıklarından kaçınmak için libs.versions.toml veya buildSrc aracılığıyla sürümlerin merkezileştirilmesi.

Sürüm çatışmasını görüntülemek için teknik komut:

  • ./gradlew :app:dependencies --configuration implementation

Tablo — Tipik çatışmalar ve hızlı çözümler

ÇatışmaNedenÇözüm
Farklı Gson sürümleriGeçişli bağımlılıklar farklı sürümleri çekiyorforce("com.google.code.gson:gson:2.10.1") veya exclude ile istenen sürümü ekleme
Kotlin stdlib uyumsuzluğuModüllerde farklı kotlin_version değerleriKök dizindeki kotlin_version değerini senkronize etme
OkHttp vs Glide/CoilTaşıma katmanının çoğaltılmasıokhttp'i bir modülden hariç tutma veya sürümleri eşitleme
Firebase modülleriModül sürümlerinin tutarsızlığıFirebase BOM kullanma

Sık Yapılan Hatalar

  • settings.gradle.kts içindeki depolar senkronize edilmedi → Resolution failed.
  • Çok sayıda kütüphane aynı anda güncellendi → derlemeyi neyin bozduğu belirsiz hale geldi.
  • Gereksiz yere api yerine implementation kullanıldı → APK boyutu arttı ve daha fazla geçişli çatışma oluştu.
  • İnternetten kopyalanan satırların sürüm ve AGP/Kotlin uyumluluğu kontrol edilmeden kullanılması.

SSS

  • Hangi kütüphanenin çatışan bağımlılığı çektiğini hızlıca nasıl görebilirim?

    • ./gradlew :app:dependencies komutunu çalıştırın ve ağaçta sürüm kaynağını bulun.
  • BOM'u ne zaman kullanmak daha iyidir?

    • Kütüphane bir dizi modül sunduğunda (örneğin Firebase) ve tutarlı sürüm yönetimi önemli olduğunda.
  • Her zaman force kullanmalı mıyım?

    • Hayır. force son çaredir; önce exclude ve Catalog/BOM aracılığıyla standartlaştırmayı deneyin.
  • Çok sayıda modülde sürümleri nasıl yönetebilirim?

    • Version Catalog (libs.versions.toml) veya buildSrc — sürümler ve artefaktlar için merkezi bir konum.

Bu makaledeki araçlar, komutlar ve şablonlar, kütüphaneleri hızlıca eklemenize, sürümleri dikkatlice güncellemenize ve çatışmaları çözmenize yardımcı olacaktır. Belirli bir çatışma çözülmüyorsa, ./gradlew build --stacktrace çıktısını ve bağımlılık ağacını ekleyin; bu, teşhisi hızlandıracaktır. İyi geliştirmeler!