Android modülünde com.android.application nasıl eklenir ve kullanılır
com.android.application eklentisi, bir modülü uygulamaya dönüştüren ve APK/AAB derlemesi, kaynaklar, manifest dosyası, imzalama ve ilgili Gradle görevlerinden sorumlu olan Android Gradle Plugin (AGP) dir. Bunu yalnızca uygulama modülüne (app), modülün build.gradle(.kts) dosyasındaki plugins {} bloğu aracılığıyla ekleyin — ve AGP sürümünün settings.gradle (pluginManagement) veya buildscript üzerinden erişilebilir olduğundan emin olun.
com.android.application eklentisi ne yapar?
- assemble, bundle, install ve test görevlerini kaydeder.
- compileSdk, defaultConfig, buildTypes, signingConfigs, productFlavors için android { … } DSL'ini ekler.
- Android SDK, aapt, dexer, adb entegrasyonu ve kaynak/manifest işlemlerini sağlar.
- Yapıtı APK/AAB olarak tanımlar (kütüphanelerdeki gibi AAR değil).
Eğer eklenti kaldırılırsa, android {} bloğu tanınmaz ve uygulama derleme görevleri ortadan kalkar — yalnızca genel Java/Kotlin görevleri kalır.
Doğru şekilde nasıl eklenir (Groovy ve Kotlin DSL)
Fark önemlidir: modern projelerde plugins {} kullanın ve modülde id'yi sürüm belirtmeden yazın; AGP sürümünü merkezi olarak belirleyin.
Modül örneği (Groovy, app/build.gradle):
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android' // gerekirse
}
android {
namespace 'com.example.app'
compileSdk 34
defaultConfig {
applicationId "com.example.app"
minSdk 24
targetSdk 34
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
Modül örneği (Kotlin DSL, app/build.gradle.kts):
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
android {
namespace = "com.example.app"
compileSdk = 34
defaultConfig {
applicationId = "com.example.app"
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0"
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
}
Eğer build.gradle.kts kullanıyorsanız — id("...") ve Kotlin özelliklerini (isMinifyEnabled vb.) kullanın. Groovy'de — id '...' şeklinde yazın.
Android Gradle Plugin sürümü ve uyumluluk nerede belirtilir?
AGP sürümü modülün plugins {} bloğunda değil, merkezi olarak belirtilir.
Eski (kullanımdan kalkmış) yöntem — root build.gradle içinde classpath:
buildscript {
repositories { google(); mavenCentral() }
dependencies { classpath "com.android.tools.build:gradle:7.4.2" }
}
Modern yaklaşım — settings.gradle(.kts) + pluginManagement veya version catalogs / libs.versions.toml:
pluginManagement {
repositories { google(); mavenCentral(); gradlePluginPortal() }
// sürümler burada veya version catalog'da belirtilebilir
}
Önemli: AGP ve Gradle uyumlu olmalıdır (örneğin, AGP 8.x → Gradle 8.x). İkisini birlikte güncelleyin ve uyumluluk matrisini kontrol edin.
"Plugin with id 'com.android.application' not found" hatası çoğunlukla settings.gradle içinde google()/mavenCentral() depolarının eklenmemiş olması veya pluginManagement'in yapılandırılmamış olması anlamına gelir.
Yaygın hatalar
- id("com.android.application") kök build.gradle dosyasına eklendi — yalnızca uygulama modülünde olmalıdır.
- Eski buildscript/apply plugin ile yeni plugins {} karıştırılması — sürüm çakışmalarına yol açar.
- com.android.application'ın kütüphane modülünde kullanılması — modül AAR olarak yayınlanamaz.
- Uyumlu olmayan Gradle ve AGP sürümleri — derleme, eklenti/sınıf hatalarıyla başarısız olur.
Kontrol listesi:
- Modül gerçekten bir uygulama mı (applicationId var mı)?
- plugins { id("com.android.application") } app/build.gradle(.kts) içinde yalnızca bir kez yer alıyor mu?
- settings.gradle içinde pluginManagement/repositories yapılandırıldı mı?
- AGP ↔ Gradle uyumluluğu sağlandı mı?
SSS
- Modülde eklenti sürümü belirtilmeli mi? Hayır — AGP sürümü merkezi olarak belirlenir (settings.gradle veya version catalog).
- com.android.library ne zaman kullanılır? AAR istediğinizde, APK/AAB değil, kütüphane modülleri için.
- "Cannot find method android()" hatası durumunda ne yapılmalı? Eklentinin aynı dosyada eklendiğinden ve kökte değil, modül içinde olduğunuzdan emin olun.
Android Studio'nun eski AGP sürümleriyle ilgili uyarılarını görmezden gelmeyin. Kademeli olarak güncelleyin ve çalışan kombinasyonları VCS'de sabitleyin.
Bu kontrol listesini ve örnekleri hemen uygulayabilirsiniz: app/build.gradle(.kts) dosyasını açın, eklentinin eklendiği yeri kontrol edin, applicationId'nin varlığından ve settings.gradle içindeki depo yapılandırmasının doğruluğundan emin olun.