Android Studio derleme sistemi Gradle'a dayanır ve Android Gradle eklentisi, Android uygulamaları oluşturmaya özel çeşitli özellikler ekler. Android Gradle eklentisi (AGP) genellikle Android Studio ile düzenli olarak güncellense de eklenti (ve Gradle sisteminin geri kalanı) Android Studio'dan bağımsız olarak çalışabilir ve ayrı olarak güncellenebilir.
Bu sayfada, Gradle araçlarınızı nasıl güncel tutacağınız ve son güncellemelerdeki yenilikler açıklanmaktadır. Eski Android Gradle eklentilerinin sürümleriyle ilgili sürüm notları için geçmiş sürüm notlarına bakın.
Android Gradle eklentisinin bu sürümünde nelerin düzeltildiğini görmek için kapatılan sorunlara göz atın.
Android Gradle eklentisinde yakında yapılacak zarar verici değişikliklerin üst düzey bir özeti için Android Gradle eklentisi yol haritasını inceleyin.
Android derlemelerinizi Gradle ile yapılandırmayla ilgili ayrıntılar için aşağıdaki sayfalara bakın:
- Derlemenizi yapılandırma
- Android Gradle eklentisi DSL referansı
- Gradle DSL referansı
- Gradle performansı kullanıcı rehberi
Gradle derleme sistemi hakkında daha fazla bilgi için Gradle kullanıcı kılavuzuna bakın.
Android Gradle eklentisini güncelleyin
Android Studio'yu güncellerken Android Gradle eklentisini mevcut en yeni sürüme otomatik olarak güncellemeniz istenebilir. Güncellemeyi kabul edebilir veya projenizin derleme gereksinimlerine göre manuel olarak bir sürüm belirtebilirsiniz.
Eklenti sürümünü, Android Studio'daki Dosya > Proje Yapısı > Proje menüsünde veya üst düzey build.gradle.kts
dosyasında belirtebilirsiniz. Eklenti sürümü, ilgili Android Studio projesinde yerleşik olarak bulunan tüm modüller için geçerlidir. Aşağıdaki örnekte, eklenti build.gradle.kts
dosyasından 8.3.0 sürümüne ayarlanmaktadır:
Kotlin
plugins { id("com.android.application") version "8.3.0" apply false id("com.android.library") version "8.3.0" apply false id("org.jetbrains.kotlin.android") version "1.9.23" apply false }
Modern
plugins { id 'com.android.application' version '8.3.0' apply false id 'com.android.library' version '8.3.0' apply false id 'org.jetbrains.kotlin.android' version '1.9.23' apply false }
Dikkat: Sürüm numaralarında 'com.android.tools.build:gradle:8.3.+'
gibi dinamik bağımlılıklar kullanmamalısınız.
Bu özelliğin kullanılması, beklenmedik sürüm güncellemelerine ve sürüm farklılıklarını çözmede zorluklara neden olabilir.
Belirtilen eklenti sürümü indirilmemişse Gradle, projenizi bir sonraki derlediğinizde indirir veya Android Studio menü çubuğundan Dosya > Projeyi Gradle Dosyalarıyla Senkronize Et'i tıklayın.
Gradle'ı güncelle
Android Studio'yu güncellerken Gradle'ı mevcut en son sürüme güncellemeniz istenebilir. Güncellemeyi kabul edebilir veya projenizin derleme gereksinimlerine göre manuel olarak bir sürüm belirtebilirsiniz.
Aşağıdaki tabloda, Android Gradle eklentisinin her sürümü için hangi Gradle sürümünün gerekli olduğu listelenmektedir. En iyi performans için hem Gradle'ın hem de eklentinin mümkün olan en son sürümünü kullanmalısınız.
Eklenti sürümü | Gereken minimum Gradle sürümü |
---|---|
8.4 (alfa) | 8.6-rc-1 |
8,3 | 8,4 |
8,2 | 8,2 |
8.1 | 8.0 |
8.0 | 8.0 |
7,4 | 7,5 |
Eski sürümler
Eklenti sürümü | Gerekli Gradle sürümü |
---|---|
7,3 | 7,4 |
7,2 | 7.3.3 |
7.1 | 7,2 |
7,0 | 7,0 |
4.2.0 ve üzeri | 6.7.1 |
4.1.0 ve üzeri | 6,5 ve üzeri |
4.0.0 ve üzeri | 6.1.1 ve üzeri |
3.6.0 - 3.6.4 | 5.6.4 ve üzeri |
3,5,0 - 3,5,4 | 5.4.1 ve üzeri |
3.4.0 - 3.4.3 | 5.1.1 ve üzeri |
3.3.0 - 3.3.3 | 4.10.1 ve üzeri |
3.2.0 - 3.2.1 | 4.6 ve üzeri |
3.1.0 ve üzeri | 4.4 ve üzeri |
3.0.0 ve üzeri | 4.1 ve üzeri |
2.3.0 ve üzeri | 3,3 ve üzeri |
2.1.3 - 2.2.3 | 2.14.1 - 3,5 |
2.0.0 - 2.1.2 | 2,10 - 2:13 |
1,5,0 | 2.2.1 - 2.13 |
1.2.0 - 1.3.1 | 2,2,1 - 2,9 |
1.0.0 - 1.1.3 | 2.2.1 - 2,3 |
Android Studio'daki Dosya > Proje Yapısı > Proje menüsünden Gradle sürümünü belirtebilir veya komut satırını kullanarak Gradle sürümünüzü güncelleyebilirsiniz.
Tercih edilen yol, gradlew
komut dosyalarını güncelleyen Gradle Wrapper komut satırı aracını kullanmaktır. Aşağıdaki örnekte, Gradle Wrapper kullanılarak Gradle sürümü 8.3 olarak ayarlanmaktadır.
Hem Gradle'ı hem de Gradle Sarmalayıcı'yı yükseltmek için bu komutu iki kez çalıştırmanız gerektiğini unutmayın (daha fazla bilgi için Gradle Wrapper'ı Yükseltme konusuna bakın).
gradle wrapper --gradle-version 8.3
Ancak AGP'yi yeni güncellediyseniz ve güncel Gradle sürümüyle uyumlu değilse bu işlem bazı durumlarda başarısız olabilir. Bu durumda, gradle/wrapper/gradle-wrapper.properties
dosyasındaki Gradle dağıtım referansını düzenlemeniz gerekir. Aşağıdaki örnekte Gradle sürümü gradle-wrapper.properties
dosyasında 8.3 olarak ayarlanmaktadır.
...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.3-bin.zip
...
Android Gradle eklentisi ve Android Studio uyumluluğu
Android Studio derleme sistemi Gradle'a dayanır ve Android Gradle eklentisi (AGP), Android uygulamaları oluşturmaya özel çeşitli özellikler ekler. Aşağıdaki tabloda, Android Studio'nun her sürümü için hangi AGP sürümünün gerektiği listelenmektedir.
Android Studio sürümü | Gerekli AGP sürümü |
---|---|
Denizanası | 1.3.2023 | 3,2-8,4 |
İguana | 1.2.2023 | 3,2-8,3 |
Kirpi | 1.1.2023 | 3,2-8,2 |
Zürafa | 1.3.2022 | 3,2-8,1 |
Flamingo | 1.2.2022 | 3,2-8,0 |
Elektrikli Yılan balığı | 1.1.2022 | 3,2-7,4 |
Eski sürümler
Android Studio sürümü | Gerekli AGP sürümü |
---|---|
Yunus | 1.3.2021 | 3,2-7,3 |
Sincap | 1.2.2021 | 3,2-7,2 |
Yaban Arısı | 1.1.2021 | 3,2-7,1 |
Kutup Tilkisi | 1 Mart 2020 | 3,1-7,0 |
Android Gradle eklentisindeki yenilikler hakkında bilgi edinmek için Android Gradle eklentisi sürüm notlarına bakın.
Android API düzeyi için araçların minimum sürümleri
Belirli bir API düzeyini destekleyen minimum Android Studio ve AGP sürümleri vardır. Android Studio veya AGP'nin, projenizin targetSdk
ya da compileSdk
programının gerektirdiğinden daha eski sürümlerinin kullanılması, beklenmedik sorunlara yol açabilir. Android OS'nin önizleme sürümlerini hedefleyen projelerde çalışmak için Android Studio ve AGP'nin en son önizleme sürümünü kullanmanızı öneririz. Android Studio'nun önizleme sürümlerini kararlı bir sürümle birlikte yükleyebilirsiniz.
Android Studio ve AGP'nin minimum sürümleri aşağıdaki gibidir:
API seviyesi | Minimum Android Studio sürümü | Minimum AGP sürümü |
---|---|---|
VanillaIceCream önizlemesi | Denizanası | 1.3.2023 | 8,4 |
34 | Kirpi | 1.1.2023 | 8.1.1 |
33 | Flamingo | 1.2.2022 | 7,2 |
Sürüm oluşturma değişiklikleri (Kasım 2020)
Android Gradle eklentisi (AGP) için sürüm numaralandırmasını, temel Gradle oluşturma aracıyla daha yakından eşleşecek şekilde güncelliyoruz.
Önemli değişiklikler şunlardır:
AGP artık semantik sürüm oluşturmayı kullanır ve zarar veren değişiklikler ana sürümler için hedeflenir.
AGP'nin her yıl Gradle ana sürümüyle uyumlu bir ana sürümü yayınlanacaktır.
AGP 4.2'den sonraki sürüm, 7.0 sürümü olur ve Gradle 7.x sürümüne yükseltmeyi gerektirir. AGP'nin her ana sürümü, temel Gradle aracında ana sürüm yükseltmesi gerektirir.
API'ler yaklaşık bir yıl önce kullanımdan kaldırılacak ve değişim işlevi de eşzamanlı olarak kullanıma sunulacak. Kullanımdan kaldırılan API'ler, yaklaşık bir yıl sonra sonraki büyük güncelleme sırasında kaldırılacaktır.
Uyumluluk
Android Gradle eklentisi 8.3'ün desteklediği maksimum API düzeyi, API düzeyi 34'tür. Uyumlulukla ilgili diğer bilgiler şunlardır:
Minimum sürüm | Varsayılan sürüm | Notlar | |
---|---|---|---|
Gradle | 8,4 | 8,4 | Daha fazla bilgi edinmek için Gradle'ı güncelleme konusuna bakın. |
SDK Oluşturma Araçları | 34.0.0 | 34.0.0 | SDK Derleme Araçlarını yükleyin veya yapılandırın. |
400 | Yok | 25.1.8937393 | Farklı bir NDK sürümü yükleyin veya yapılandırın. |
JDK | 17 | 17 | Daha fazla bilgi edinmek için JDK sürümünü ayarlama bölümüne bakın. |
Android Gradle eklentisi 8.3'teki yeni özellikler aşağıda verilmiştir.
Yama sürümleri
Aşağıda, Android Studio Iguana ve Android Gradle eklentisi 8.3'teki yama sürümlerinin bir listesi bulunmaktadır.
Android Studio Iguana | 2023.2.1 Yama 1 ve AGP 8.3.1 (Mart 2024)
Bu küçük güncelleme, bu hata düzeltmelerini içerir.
Gradle Sürüm Katalogları Desteği
Android Studio, bağımlılıkları tek bir merkezi konumdan yönetmenize ve bağımlılıkları modüller veya projeler arasında paylaşmanıza olanak tanıyan bir özellik olan TOML tabanlı Gradle Sürüm Katalogları'nı destekler. Android Studio artık düzenleyici önerileri ve Proje Yapısı iletişim kutusuyla entegrasyon sayesinde sürüm kataloglarının yapılandırılmasını kolaylaştırıyor. Gradle Sürüm Katalogları oluşturma ve yapılandırma veya derlemenizi sürüm kataloglarına taşıma hakkında bilgi edinin.
Kod tamamlama ve gezinme
Bir sürüm kataloğunu TOML dosya biçiminde düzenlerken veya bir sürüm kataloğundan derleme dosyasına bir bağımlılık eklerken Android Studio, kod tamamlama özelliği sunar. Kod tamamlama özelliğini kullanmak için Ctrl+Boşluk tuşlarına basın (macOS'te Command+Boşluk). Ayrıca, Ctrl+b (macOS'te Command+b) tuşlarına basarak uygulamanızın build.gradle
dosyasındaki bir bağımlılık referansından bu referansın sürüm kataloğunda tanımlandığı yere hızlı bir şekilde gidebilirsiniz.
Proje Yapısı iletişim kutusuyla entegrasyon
Projeniz TOML dosya biçiminde tanımlanan bir sürüm kataloğu kullanıyorsa burada tanımladığınız değişkenleri Android Studio'daki Proje Yapısı iletişim kutusu Değişkenler görünümünden (Dosya > Proje Yapısı > Değişkenler) düzenleyebilirsiniz. Her sürüm kataloğu için ilgili katalogdaki değişkenleri listeleyen bir açılır liste bulunur. Bir değişkeni düzenlemek için değerini tıklayın ve değişkenin üzerine yazın. Bu değişiklikleri kaydettiğinizde TOML dosyası uygun şekilde güncellenir.
Bağımlılıkları ayrıca Proje Yapısı iletişim kutusu Bağımlılıklar görünümünde (Dosya > Proje Yapısı > Bağımlılıklar) güncelleyebilirsiniz. Proje Yapısı iletişim kutusunu kullanarak sürümleri güncellemek için düzenlemek istediğiniz modüle ve bağımlılığa gidin, ardından İstenen Sürüm alanını güncelleyin. Bu değişiklikleri kaydettiğinizde TOML dosyası buna göre güncellenir. Bağımlılık sürümü bir değişken kullanılarak tanımlanmışsa, sürümü doğrudan bu şekilde güncellediğinizde değişkenin sabit kodlu bir değerle değiştirileceğini unutmayın. Ayrıca, Proje Yapısı iletişim kutusunu kullansanız da kullanmasanız da bir bağımlılığı derleme dosyasından kaldırmanın, bağımlılığın sürüm kataloğundan kaldırılmayacağını unutmayın.
Bilinen sorunlar ve sınırlamalar
Aşağıda, Android Studio'daki Gradle Sürüm Katalogları desteğiyle ilgili bilinen sorunlar veya sınırlamalar bulunmaktadır.
Kotlin komut dosyası dosyalarında eklenti takma adı bildirimleri vurgulanırken hata oluştu:
alias(libs.plugins.example)
formunda bir eklenti bildirimi eklediğinizde düzenleyici,libs
bölümünün altına kırmızı bir alt çizgi ekler. Bu, Gradle'ın 8.0 ve önceki sürümlerinde bilinen bir sorundur ve Gradle'ın gelecekteki bir sürümünde çözülecektir.Android Studio yalnızca TOML biçimindeki sürüm katalogları için desteklenir: Şu anda Android Studio kod tamamlama, gezinme ve Proje Yapısı iletişim kutusu desteği yalnızca TOML dosya biçiminde tanımlanan sürüm katalogları için kullanılabilir. Yine de doğrudan
settings.gradle
dosyasına bir sürüm kataloğu ekleyebilir ve bu kataloğun bağımlılıklarını projenizde kullanabilirsiniz.KTS derleme dosyalarında gezinme desteklenmez: Kotlin komut dosyası kullanılarak yazılan derleme dosyalarında Control+tıklama (macOS'te Command+tıklama) komutuyla sürüm kataloğundaki bir bağımlılık tanımına gitme henüz desteklenmemektedir.
Firebase Assistant, bağımlılıkları doğrudan derleme komut dosyalarına ekler: Firebase Assistant, bağımlılıkları sürüm katalogları yerine doğrudan derleme komut dosyalarınıza ekler.
"Kullanımları bulma" işlevi desteklenmez: Derleme dosyasının KTS veya Groovy'de olması fark etmeksizin, diğer derleme dosyalarında sürüm kataloğu değişkeninin kullanımlarını bulma özelliği henüz desteklenmemektedir. Yani bir sürüm kataloğundaki değişken tanımında Control+click (macOS'te Command+click) komutu, değişkenin kullanıldığı derleme dosyalarına yönlendirilemez.
Android Studio'daki Proje Yapısı iletişim kutusu, kök
gradle
klasöründe birden fazla katalog dosyası gösterir ancak birleşik derleme kataloglarını göstermez. Örneğin, biri uygulamanız ve diğeri birleşik derleme için iki katalog dosyanız varsa Proje Yapısı iletişim kutusunda yalnızca uygulama kataloğu dosyası gösterilir. Kompozit bir derleme kullanabilirsiniz, ancak doğrudan TOML dosyasını düzenlemeniz gerekir.
Ek SDK analizleri: Politika sorunları
Android Studio, build.gradle.kts
ile build.gradle
dosyalarında ve Google Play SDK Dizini'nde Play politikalarını ihlal eden herkese açık SDK'lar için Proje Yapısı İletişim Kutusu'nda lint uyarıları gösterir. Gelecekte Google Play Console'da içerik yayınlamanızı engelleyebileceği için Play politikalarını ihlal eden tüm bağımlılıkları güncellemeniz gerekir. Politika ihlali uyarıları, Android Studio tarafından gösterilen eski sürüm uyarılarını tamamlar.
Android Studio Derleme SDK sürümü desteği
Projeniz, Android Studio'nun geçerli sürümünde desteklenmeyen bir compileSdk
kullanıyorsa Android Studio bir uyarı gösterir. Varsa projeniz tarafından kullanılan compileSdk
destekleyen bir Android Studio sürümüne geçmeniz de önerilir. Android Studio'yu yeni sürüme geçirmek için AGP'yi yeni sürüme geçirmeniz gerekebileceğini unutmayın.
Projenizde kullanılan compileSdk
, AGP'nin geçerli sürümü tarafından desteklenmiyorsa AGP ayrıca Derleme araç penceresinde bir uyarı görüntüler.
Lint davranışı değişiklikleri
Bir modül üzerinde lint çalıştırırken, Android Gradle eklentisi 8.3.0-alpha02 ile başlayarak, modülün ana ve test bileşenleri için ayrı lint analiz görevleri çalıştırılır. Bu değişikliğin amacı performansı artırmaktır.
Önceki davranışa geri dönmek için gradle.properties
dosyanızda android.experimental.lint.analysisPerComponent=false
değerini ayarlayın.
Varsayılan olarak hassas kaynak daralması açık
resources.arsc
dosyasındaki kullanılmayan girişleri kaldıran ve kullanılmayan kaynak dosyaları ortadan kaldıran hassas kaynak daraltma varsayılan olarak etkindir.
Bu daraltma etkinleştirildiğinde, kaynak tablonuz küçültülür ve APK'ya yalnızca referans verilen res
klasör girişleri dahil edilir.
Hassas kaynak daraltmayı devre dışı bırakmak için projenizin gradle.properties
dosyasında android.enableNewResourceShrinker.preciseShrinking
öğesini false
olarak ayarlayın.