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

Ta wersja wtyczki na Androida wymaga:

3.2.1 (październik 2018 r.)

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

Nowe funkcje

  • Obsługa tworzenia pakietów Android App Bundle: pakiet aplikacji to nowy format przesyłania, który obejmuje cały skompilowany kod i zasoby aplikacji oraz opóźnia generowanie plików APK i podpisywanie ich w Sklepie Google Play. Nie musisz już tworzyć i podpisywać wielu plików APK ani nimi zarządzać, a użytkownicy będą otrzymywać mniejsze pliki do pobrania zoptymalizowane pod kątem ich urządzeń. Więcej informacji znajdziesz w artykule Informacje o pakietach Android App Bundle.

  • Obsługa przyrostowych szybkości kompilacji w przypadku procesorów adnotacji: AnnotationProcessorOptions DSL rozszerza teraz zakres 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życie tych adnotacji zwiększa prawidłowość i wydajność przyrostowych i czystych kompilacji w pamięci podręcznej. Więcej informacji znajdziesz w artykule Przekazywanie argumentów do procesorów adnotacji.

  • Narzędzie do migracji na AndroidaX: jeśli używasz wtyczki Androida do obsługi Gradle w wersji 3.2.0 z Androidem 3.2 lub nowszym, możesz przenieść zależności lokalne projektu i zależności Maven, aby używać nowych bibliotek AndroidaX. Aby to zrobić, wybierz z paska menu Refaktor > Przeprowadź migrację na AndroidaX. Przy użyciu tego narzędzia do migracji ustawia też w pliku gradle.properties te flagi na true:

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

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

      Aby dowiedzieć się więcej, przeczytaj omówienie AndroidaX.

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

            android.enableR8 = true
            
            android.enableR8 = true
            

Zmiany w działaniu

  • Usuwanie cukru za pomocą D8 jest teraz domyślnie włączone.

  • AAPT2 jest już w repozytorium Google Maven. Aby użyć AAPT2, sprawdź, czy w pliku build.gradle znajduje się 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()
                }
              
  • Natywna funkcja multidex jest teraz domyślnie włączona. Poprzednie wersje Android Studio korzystały z natywnej funkcji multidex podczas wdrażania aplikacji do debugowania na urządzeniu z interfejsem Android API na poziomie 21 lub wyższym. Teraz, niezależnie od tego, czy wdrażasz na urządzeniu, czy tworzysz pakiet APK dla wersji, wtyczka Androida do obsługi Gradle obsługuje natywny multidex dla wszystkich modułów, które mają ustawiony minSdkVersion=21 lub wyższy.

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

  • Przy określaniu nazwy modułu wtyczka modułu funkcji com.android.feature wymusza teraz używanie tylko liter, cyfr i podkreśleń. Jeśli na przykład nazwa modułu funkcji zawiera myślniki, wystąpi błąd kompilacji. Działa to tak samo jak w przypadku wtyczki funkcji dynamicznych.

Poprawki błędów

  • W projektach z wiązaniem danych można teraz buforować dane za pomocą języka JavaCompile. (Numer 69243050)
  • Lepsze unikanie w przypadku modułów biblioteki z powiązaniem danych. (Numer 77539932)
  • Możesz teraz ponownie włączyć ustawienie konfiguracji na żądanie, jeśli zostało wyłączone we wcześniejszych wersjach z powodu nieprzewidywalnych błędów kompilacji. (Numer 77910727)