Wtyczka Androida do obsługi Gradle 3.1.0 (marzec 2018 r.)

Ta wersja wtyczki na Androida wymaga:

Minimalna wersja Wersja domyślna Uwagi
Gradle 4.4 4.4 Więcej informacji znajdziesz w artykule Aktualizowanie Gradle.
Narzędzia do kompilowania pakietu SDK 27.0.3 27.0.3 Zainstaluj lub skonfiguruj narzędzia do kompilowania pakietu SDK. Pamiętaj, że nie musisz już określać wersji narzędzi do kompilacji za pomocą właściwości android.buildToolsVersion – wtyczka domyślnie używa minimalnej wymaganej wersji.

nowy kompilator DEX, D8;

Domyślnie Android Studio używa teraz nowego kompilatora DEX o nazwie D8. Kompilacja DEX to proces przekształcania kodu bajtowego .class w kod bajtowy .dex dla środowiska wykonawczego Androida (lub Dalvik w przypadku starszych wersji Androida). W porównaniu z poprzednim kompilatorem o nazwie DX kompilator D8 kompiluje szybciej i generuje mniejsze pliki DEX, a przy tym zapewnia taką samą lub lepszą wydajność aplikacji w czasie działania.

D8 nie powinien zmieniać codziennego procesu tworzenia aplikacji. Jeśli jednak napotkasz problemy związane z nowym kompilatorem, zgłoś błąd. Możesz tymczasowo wyłączyć D8 i użyć DX, dodając do pliku gradle.properties w projekcie te informacje:

      android.enableD8=false
    

W przypadku projektów, które korzystają z funkcji języka Java 8, stopniowe usuwanie cukru jest domyślnie włączone. Możesz go wyłączyć, określając w pliku gradle.properties projektu te opcje:

      android.enableIncrementalDesugaring=false.
    

Użytkownicy wersji podglądowej: jeśli korzystasz już z wersji podglądowej D8, pamiętaj, że kompiluje ona teraz biblioteki zawarte w narzędziach do kompilowania pakietu SDK, a nie w JDK. Jeśli więc uzyskujesz dostęp do interfejsów API, które są dostępne w JDK, ale nie w bibliotekach narzędzi pakietu SDK, pojawia się błąd kompilacji.

Zmiany w zachowaniu

  • Podczas kompilowania wielu plików APK kierowanych na różne interfejsy ABI kompilator nie generuje już domyślnie plików APK dla tych interfejsów ABI: mips, mips64armeabi.

    Jeśli chcesz skompilować pliki APK przeznaczone na te ABI, musisz użyć NDK r16b lub niższego i wyznaczyć ABI w pliku build.gradle, jak pokazano poniżej:

              splits {
                  abi {
                      include 'armeabi', 'mips', 'mips64'
                      ...
                  }
              }
            
              splits {
                  abi {
                      include("armeabi", "mips", "mips64")
                      ...
                  }
              }
            
  • Pamięć podręczna kompilacji w pliku dodatku Androida usuwa teraz wpisy w pamięci podręcznej, które mają więcej niż 30 dni.

  • Przekazywanie wartości "auto" do funkcji resConfignie powoduje już automatycznego wybierania zasobów ciągu znaków do spakowania do pliku APK. Jeśli nadal używasz "auto", wtyczka skompiluje wszystkie zasoby ciągów znaków, które zapewniają aplikacja i jej zależności. Zamiast tego należy określić każdą lokalizację, którą wtyczka ma zapakować do pliku APK.

  • Ponieważ moduły lokalne nie mogą zależeć od pliku APK testów aplikacji, dodanie zależności do testów z użyciem konfiguracji androidTestApi zamiast androidTestImplementation powoduje wyświetlenie przez Gradle tego ostrzeżenia:

            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            
            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            

Poprawki

  • Rozwiązanie problemu polegającego na tym, że Android Studio nie rozpoznaje zależności w kompletanch kompilacjach.
  • Rozwiązanie problemu polegające na tym, że podczas wczytywania w ramach jednej kompilacji kilkukrotnie pojawia się błąd synchronizacji projektu. Może to mieć miejsce na przykład wtedy, gdy każdy z podprojektów zawiera w swoim buildscript classpath wtyczkę Androida.