Wtyczka Androida do obsługi Gradle w wersji 3.1.0 (marzec 2018 r.)
Ta wersja wtyczki Androida wymaga:
Wersja minimalna | Wersja domyślna | Uwagi | |
---|---|---|---|
Gradle | 4.4 | 4.4 | Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle. |
SDK Build Tools | 27.0.3 | 27.0.3 | Zainstaluj lub skonfiguruj narzędzia do kompilacji 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
na potrzeby środowiska wykonawczego Androida (lub Dalvik w starszych wersjach Androida). W porównaniu z poprzednim kompilatorem DX kompilator D8 działa 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żywać DX, dodając do pliku gradle.properties
projektu ten kod:
android.enableD8=false
W przypadku projektów, które korzystają z funkcji języka Java 8, przyrostowe usuwanie składni jest domyślnie włączone. Możesz ją wyłączyć, podając w pliku gradle.properties
projektu to polecenie:
android.enableIncrementalDesugaring=false.
Użytkownicy wersji podglądowej: jeśli używasz już wersji podglądowej D8, pamiętaj, że jest ona teraz kompilowana z bibliotekami zawartymi w narzędziach do kompilacji pakietu SDK, a nie w JDK. Jeśli więc uzyskujesz dostęp do interfejsów API, które istnieją w JDK, ale nie w bibliotekach narzędzi do kompilacji pakietu SDK, pojawi się błąd kompilacji.
Zmiany w działaniu
-
Podczas tworzenia wielu plików APK, z których każdy jest kierowany na inny interfejs ABI, domyślnie nie generuje już plików APK dla tych interfejsów:
mips
,mips64
iarmeabi
.Jeśli chcesz utworzyć pliki APK przeznaczone na te interfejsy ABI, musisz użyć NDK w wersji r16b lub starszej i określić interfejsy ABI w pliku
build.gradle
, jak pokazano poniżej:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Wtyczka Androida pamięć podręczna kompilacji usuwa teraz wpisy starsze niż 30 dni.
-
Przekazywanie wartości
"auto"
doresConfig
nie powoduje już automatycznego wybierania zasobów ciągów do spakowania w pliku APK. Jeśli nadal będziesz używać"auto"
, wtyczka spakuje wszystkie zasoby ciągów znaków udostępniane przez aplikację i jej zależności. Zamiast tego określ każdą wersję językową, którą chcesz spakować do pliku APK. -
Moduły lokalne nie mogą zależeć od testowego pliku APK aplikacji, więc dodanie zależności do testów instrumentalnych za pomocą konfiguracji
androidTestApi
zamiastandroidTestImplementation
spowoduje 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ązuje problem polegający na tym, że Android Studio nie rozpoznaje prawidłowo zależności w kompozytowych kompilacjach.
- Rozwiązuje problem, który powodował błąd synchronizacji projektu podczas wielokrotnego wczytywania wtyczki Androida w ramach jednej kompilacji, np. gdy wiele podprojektów zawierało wtyczkę Androida w ścieżce klasy skryptu kompilacji.