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
,mips64
iarmeabi
.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 funkcjiresConfig
nie 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
zamiastandroidTestImplementation
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.