Wtyczka Androida do obsługi Gradle w wersji 3.2.0 (wrzesień 2018 r.)

Ta wersja wtyczki Androida wymaga:

Wersja minimalna Wersja domyślna Uwagi
Gradle 4.6 4.6 Więcej informacji znajdziesz w artykule Aktualizowanie Gradle.
Narzędzia do kompilacji pakietu SDK 28.0.3 28.0.3 Zainstaluj lub skonfiguruj narzędzia SDK do kompilacji.

3.2.1 (październik 2018 r.)

Po tej aktualizacji nie musisz już określać wersji narzędzi do kompilacji pakietu SDK. Wtyczka Androida do obsługi Gradle używa teraz domyślnie wersji 28.0.3.

Nowe funkcje

  • Obsługa tworzenia pakietów Android App Bundle: pakiet aplikacji to nowy format przesyłania, który zawiera cały skompilowany kod i wszystkie zasoby aplikacji, a generowanie i podpisywanie plików APK jest odroczone do momentu przesłania do Sklepu Google Play. Nie musisz już tworzyć, podpisywać ani zarządzać wieloma plikami APK, a użytkownicy mogą pobierać mniejsze pliki zoptymalizowane pod kątem ich urządzeń. Więcej informacji znajdziesz w artykule Android App Bundle.

  • Obsługa większych szybkości kompilacji przyrostowych podczas korzystania z procesorów adnotacji: język DSL AnnotationProcessorOptions rozszerza teraz CommandLineArgumentProvider, co umożliwia Tobie lub autorowi procesora adnotacji dodawanie adnotacji do argumentów procesora za pomocą adnotacji typu właściwości kompilacji przyrostowej. Używanie tych adnotacji zwiększa poprawność i wydajność przyrostowych i buforowanych czystych kompilacji. Więcej informacji znajdziesz w artykule Przekazywanie argumentów do procesorów adnotacji.

  • Narzędzie do migracji do AndroidaX: jeśli używasz wtyczki Androida do obsługi Gradle w wersji 3.2.0 z Androidem w wersji 3.2 lub nowszej, możesz przenieść lokalne zależności projektu i zależności Maven, aby używać nowych bibliotek AndroidaX. W tym celu na pasku menu wybierz Refactor > Migrate to AndroidX (Przebuduj > Przenieś do AndroidaX). Użycie tego narzędzia do migracji powoduje też ustawienie w pliku gradle.properties tych flag na wartość true:

    • android.useAndroidX: gdy ta opcja ma wartość true, wtyczka Androida używa odpowiedniej biblioteki AndroidX zamiast biblioteki pomocy. Jeśli ta flaga nie jest określona, wtyczka domyślnie ustawia ją na false.

    • android.enableJetifier: jeśli ustawiono wartość true, wtyczka Androida automatycznie migruje istniejące biblioteki innych firm, aby używać AndroidaX, poprzez przepisanie ich plików binarnych. Jeśli ta flaga nie jest określona, wtyczka domyślnie ustawia ją na false. Możesz ustawić tę flagę na true tylko wtedy, gdy android.useAndroidX ma wartość true. W przeciwnym razie wystąpi błąd kompilacji.

      Więcej informacji znajdziesz w omówieniu AndroidaX.

  • Nowe narzędzie do zmniejszania kodu – R8: R8 to nowe narzędzie do zmniejszania i zaciemniania kodu, które zastępuje ProGuard. Aby zacząć korzystać z wersji podglądowej R8, w pliku gradle.properties projektu umieść ten kod:

            android.enableR8 = true
            
            android.enableR8 = true
            

Zmiany w działaniu

  • Desugaryzacja za pomocą D8 jest teraz domyślnie włączona.

  • AAPT2 jest teraz w repozytorium Maven Google. Aby używać AAPT2, upewnij się, że w pliku build.gradle masz zależność google(), jak pokazano poniżej:

              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
  • Natywny multidex jest teraz domyślnie włączony. Wcześniejsze wersje Androida Studio umożliwiały natywny multidex podczas wdrażania wersji debugowania aplikacji na urządzeniu z Androidem API na poziomie 21 lub nowszym. Teraz, niezależnie od tego, czy wdrażasz aplikację na urządzeniu, czy tworzysz plik APK do publikacji, wtyczka Androida do Gradle umożliwia natywną obsługę wielu plików DEX we wszystkich modułach, w których ustawiono minSdkVersion=21 lub nowszą wersję.

  • Wymagane są teraz minimalne wersje wtyczek: protobuf (0.8.6), Kotlin (1.2.50) i Crashlytics (1.25.4).

  • Wtyczka modułu funkcjicom.android.featurewymaga teraz używania tylko liter, cyfr i znaków podkreślenia podczas określania nazwy modułu. Jeśli na przykład nazwa modułu z funkcją zawiera myślniki, pojawi się błąd kompilacji. Działa to tak samo jak w przypadku wtyczki modułu z funkcją dynamiczną.

Poprawki błędów

  • JavaCompile można teraz buforować w projektach z powiązaniem danych. (Problem 69243050)
  • Lepsze unikanie kompilacji w przypadku modułów biblioteki z powiązaniem danych. (Problem 77539932)
  • Możesz teraz ponownie włączyć konfigurację na żądanie, jeśli została ona wyłączona w starszych wersjach z powodu nieprzewidywalnych błędów kompilacji. (Problem 77910727)