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 o aktualizowaniu 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.)

W tej aktualizacji nie musisz już określać wersji narzędzi SDK do kompilacji. Wtyczka Androida do obsługi Gradle domyślnie używa teraz 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 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 pobierają mniejsze pliki zoptymalizowane pod kątem ich urządzeń. Więcej informacji znajdziesz w artykule o pakietach Android App Bundle .

  • Obsługa szybszych kompilacji przyrostowych podczas korzystania z procesorów adnotacji: 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ść kompilacji przyrostowych oraz kompilacji czystych z pamięci podręcznej. Więcej informacji znajdziesz w artykule Przekazywanie argumentów do procesorów adnotacji.

  • Narzędzie do migracji do AndroidX: 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 korzystać z nowych bibliotek AndroidX. W tym celu na pasku menu wybierz Refactor > Migrate to AndroidX (Refaktoryzacja > Migracja do AndroidX). Użycie tego narzędzia do migracji powoduje też ustawienie tych flag na true w pliku gradle.properties:

    • android.useAndroidX: gdy ta flaga jest ustawiona na 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: gdy ta flaga jest ustawiona na true, wtyczka Androida automatycznie migruje istniejące biblioteki innych firm do AndroidX, przepisując ich pliki binarne. Jeśli ta flaga nie jest określona, wtyczka domyślnie ustawia ją na false. Tę flagę możesz ustawić na true tylko wtedy, gdy android.useAndroidX jest też ustawiona na true. W przeciwnym razie pojawi się błąd kompilacji.

      Więcej informacji znajdziesz w artykule Omówienie AndroidX.

  • 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 testowej R8, dodaj do pliku gradle.properties projektu ten kod:

            android.enableR8 = true
            
            android.enableR8 = true
            

Zmiany w zachowaniu

  • Desugaring za pomocą D8 jest teraz domyślnie włączony.

  • AAPT2 jest teraz w repozytorium Maven Google. Aby używać AAPT2, upewnij się, że masz zależność google() w pliku build.gradle 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. W poprzednich wersjach Android Studio natywny multidex był włączany podczas wdrażania wersji debugowania aplikacji na urządzeniu z Androidem w wersji 21 lub nowszej. Teraz, niezależnie od tego, czy wdrażasz aplikację na urządzeniu, czy tworzysz plik APK do publikacji, wtyczka Androida do obsługi Gradle włącza natywny multidex we wszystkich modułach, w których ustawiono minSdkVersion=21 lub nowszą.

  • Wtyczka wymusza teraz minimalną wersję wtyczki protobuf (0.8.6), wtyczki Kotlin (1.2.50) i wtyczki Crashlytics (1.25.4).

  • Wtyczka modułu funkcji,com.android.feature, wymusza teraz używanie tylko liter, cyfr i podkreśleń podczas określania nazwy modułu. Jeśli na przykład nazwa modułu funkcji zawiera łączniki, pojawi się błąd kompilacji. To działanie jest zgodne z działaniem wtyczki funkcji dynamicznej.

Poprawki błędów

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