Wtyczka Androida do obsługi Gradle 3.1.0 (marzec 2018 r.)
Ta wersja wtyczki na Androida wymaga:
-
Gradle w wersji 4.4 lub nowszej.
Więcej informacji znajdziesz w sekcji na temat aktualizowania Gradle.
-
Narzędzia do tworzenia w wersji 27.0.3 lub nowszej.
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 plików DEX to proces przekształcania kodu bajtowego .class
na kod bajtowy .dex
środowiska wykonawczego Androida (lub Dalvik w przypadku starszych wersji Androida). W porównaniu z poprzednim kompilatorem (DX) D8 kompiluje szybciej i generuje mniejsze pliki DEX przy zachowaniu takiej samej lub lepszej wydajności w czasie działania aplikacji.
Platforma D8 nie powinna zmieniać Twojego 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ć trybu DX, umieszczając te dane w pliku gradle.properties
projektu:
android.enableD8=false
W projektach, w których korzystasz z funkcji języka Java 8, odpalanie przyrostowe jest domyślnie włączone. Możesz ją wyłączyć, określając te elementy w pliku gradle.properties
projektu:
android.enableIncrementalDesugaring=false.
Podgląd użytkowników: jeśli korzystasz już z wersji testowej D8, pamiętaj, że teraz kompiluje się ona z bibliotekami zawartymi w narzędziach do kompilacji SDK, a nie z pakietem JDK. Jeśli więc uzyskujesz dostęp do interfejsów API, które istnieją w JDK, ale nie ma ich w bibliotekach narzędzi do kompilacji SDK, wystąpi błąd kompilacji.
Zmiany w działaniu
-
Gdy tworzysz wiele plików APK, z których każdy jest kierowany na inny interfejs ABI, usługa nie generuje już domyślnie plików APK dla tych interfejsów ABI:
mips
,mips64
iarmeabi
.Jeśli chcesz tworzyć pliki APK kierowane na te interfejsy ABI, musisz użyć NDK r16b lub starszego i określić interfejsy ABI w pliku
build.gradle
w sposób pokazany poniżej:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Pamięć podręczna kompilacji wtyczki do Androida usuwa teraz wpisy z pamięci podręcznej starsze niż 30 dni.
-
Przekazywanie
"auto"
doresConfig
nie powoduje już automatycznego wyboru zasobów w postaci ciągów tekstowych do spakowania do pliku APK. Jeśli nadal będziesz używać"auto"
, wtyczka spowoduje pakiet ze wszystkimi zasobami tekstowymi udostępnianymi przez aplikację i jej zależności. Musisz więc określić wszystkie języki, które wtyczka ma spakować do pliku APK. -
Moduły lokalne nie mogą zależeć od testowego pakietu APK aplikacji, dlatego dodanie zależności do testów instrumentowanych za pomocą konfiguracji
androidTestApi
zamiastandroidTestImplementation
powoduje, że Gradle wyświetla to ostrzeżenie:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Poprawki
- Rozwiązaliśmy problem, który powodował, że Android Studio nie rozpoznaje prawidłowo zależności w kompilacjach złożonych.
- Rozwiązaliśmy problem, który powodował, że podczas wielokrotnego wczytywania wtyczki na Androida w jednej kompilacji występował błąd synchronizacji projektu, np. gdy wiele podprojektów zawierało wtyczkę na Androida w ścieżce klasy buildscript.