Kotlin DSL, derleme yapılandırması için varsayılan ayardır
Yeni projelerde artık derleme yapılandırması için varsayılan olarak Kotlin DSL (build.gradle.kts) kullanılıyor. Söz dizimi vurgulama, kod tamamlama ve açıklamalara gezinme özellikleri sayesinde Groovy DSL'den (build.gradle) daha iyi bir düzenleme deneyimi sunar. Derleme yapılandırması için AGP 8.1 ve Kotlin DSL kullanıyorsanız en iyi deneyim için Gradle 8.1'i kullanmanız gerektiğini unutmayın. Daha fazla bilgi için Kotlin DSL taşıma kılavuzuna bakın.
Uygulamaya özgü otomatik dil desteği
Android Studio Giraffe Canary 7 ve AGP 8.1.0-alpha07'den itibaren uygulamanızı uygulama başına dil tercihlerini otomatik olarak destekleyecek şekilde yapılandırabilirsiniz. Android Gradle eklentisi, proje kaynaklarınıza göre LocaleConfig dosyasını oluşturur ve son manifest dosyasına bu dosyaya referans ekler. Böylece artık bunu manuel olarak yapmanız gerekmez. AGP, LocaleConfig dosyasına eklenecek yerel ayarları belirlemek için uygulama modüllerinizin res klasörlerindeki kaynakları ve tüm kitaplık modülü bağımlılıklarını kullanır.
Uygulama başına otomatik dil özelliğinin Android 13 (API düzeyi 33) veya sonraki sürümleri çalıştıran uygulamaları desteklediğini unutmayın. Bu özelliği kullanmak için compileSdkVersion değerini 33 veya daha yüksek bir değere ayarlamanız gerekir. Android'in önceki sürümlerinde uygulamaya özgü dil tercihlerini yapılandırmak için API'leri ve uygulama içi dil seçicileri kullanmaya devam etmeniz gerekir.
Uygulama başına otomatik dil desteğini etkinleştirmek için varsayılan bir yerel ayar belirtin:
Uygulama modülünün res klasöründe resources.properties adlı yeni bir dosya oluşturun.
resources.properties dosyasında, varsayılan yerel ayarı unqualifiedResLocale etiketiyle ayarlayın. Yerel ayar adlarını oluşturmak için dil kodunu, isteğe bağlı yazı ve bölge kodlarıyla birleştirin. Her birini kısa çizgiyle ayırın:
Dil: İki veya üç harfli ISO 639-1 kodunu kullanın.
Bölge (isteğe bağlı): İki harfli ISO 3166-1-alpha-2 kodundan veya üç haneli UN_M.49 kodundan birini kullanın.
Örneğin, varsayılan yerel ayarınız Amerikan İngilizcesi ise:
unqualifiedResLocale=en-US
AGP, bu varsayılan yerel ayarı ve res klasöründeki values-* dizinlerini kullanarak belirttiğiniz tüm alternatif yerel ayarları otomatik olarak oluşturulan LocaleConfig dosyasına ekler.
Uygulama başına otomatik dil desteği varsayılan olarak devre dışıdır. Özelliği etkinleştirmek için modül düzeyindeki build.gradle.kts dosyasının (Groovy kullanıyorsanız build.gradle dosyası) androidResources {} bloğundaki generateLocaleConfig ayarını kullanın:
Android Lint, JVM 17'yi hedefleyen bayt kodu içeriyor
Android Lint, AGP 8.1.0-alpha04'ten itibaren JVM 17'yi hedefleyen bayt kodu içerir. Özel lint kontrolleri yazıyorsanız JDK 17 veya sonraki bir sürümle derlemeniz ve Kotlin derleyici seçeneklerinizde jvmTarget = '17' belirtmeniz gerekir.
AGP 8.1.0-alpha10'dan itibaren, yerel kitaplık sıkıştırmasını manifest yerine DSL kullanarak yapılandırmazsanız uyarı alırsınız. Aşağıdaki kılavuzda, yapılandırmanızı DSL'yi kullanacak şekilde nasıl güncelleyeceğiniz açıklanmaktadır. Bu güncellemeleri yapma konusunda yardım almak için AGP Yükseltme Asistanı'nı (Araçlar > AGP Yükseltme Asistanı) kullanın.
Sıkıştırılmamış doğal kitaplıkları kullanmak için manifest dosyasından android::extractNativeLibs özelliğini kaldırın ve modül düzeyindeki build.gradle.kts dosyasına (Groovy kullanıyorsanız build.gradle dosyasına) aşağıdaki kodu ekleyin:
Bu özelliği, imzalama yapılandırması belirtilmeden etkinleştirmek, AGP'nin profillenebilir veya hata ayıklama yapılabilir bir derleme çalıştırırken varsayılan hata ayıklama imzalama yapılandırmasını kullanmasına neden olur. Bu işaret, derleme yazarlarını belirli profil oluşturma imzalama yapılandırmalarını belirtmeye teşvik etmek için varsayılan olarak devre dışıdır.
android.experimental.library.desugarAndroidTest
AGP 8.0
false
Bu işaret, kitaplık derleyicilerinin, üretilen AAR'ı etkilemeden (ör. linting aracılığıyla) test APK'ları için temel kitaplık şekerleme kaldırma özelliğini etkinleştirmesine olanak tanır.
Bu davranışı ileride Variant API'de desteklemeyi planlıyoruz.
Etkinleştirilirse Gradle Yönetilen Cihazlar, kullanıcı tarafından tanımlanan ve bir eklenti tarafından sağlanabilen özel bir cihaz türüne izin verir. Firebase Test Lab eklentisini kullanmak istiyorsanız bu işaret etkin olmalıdır.
android.lint.printStackTrace
AGP 8.0
false
Etkinleştirilirse Android lint, kilitlenme olursa bir yığın izleme yazdırır. Bu işaret, LINT_PRINT_STACKTRACE
ortam değişkeniyle aynı özelliklere sahiptir.
Herhangi bir zamanda etkin olacak maksimum eşzamanlı Gradle Managed Device (AVD) sayısını belirtir. Değer 0 veya negatifse maksimum cihaz sayısı yoktur.
[AGP 8.1.0] Hem splits.abi.isEnable hem de testOptions.unitTests.isIncludeAndroidResources doğruysa ./gradlew test "Manifest çıkışı bulunamadı" hatasıyla başarısız oluyor
[AGP 8.1.0] Hem splits.abi.isEnable hem de testOptions.unitTests.isIncludeAndroidResources doğruysa ./gradlew test "Manifest çıkışı bulunamadı" hatasıyla başarısız oluyor
Alt projelerin sınıfları, yapı dönüştürme işlemleri aracılığıyla zaten dex'lenmişse sınıfları dex'leme görevini çalıştırmayın
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.