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 artykule o aktualizowaniu Gradle. |
| Narzędzia do kompilacji pakietu SDK | 27.0.3 | 27.0.3 | Zainstaluj lub skonfiguruj narzędzia SDK do kompilacji. 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
Android Studio domyślnie 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 starszych
wersjach Androida). W porównaniu z poprzednim kompilatorem o nazwie DX kompilator D8
kompiluje szybciej i generuje mniejsze pliki DEX, a jednocześnie zapewnia taką samą lub
lepszą wydajność środowiska wykonawczego aplikacji.
D8 nie powinien zmieniać codziennego procesu tworzenia aplikacji. Jeśli jednak wystąpią jakiekolwiek problemy związane z nowym kompilatorem, zgłoś błąd. Możesz tymczasowo
wyłączyć D8 i używać DX, dodając do pliku projektu
gradle.properties te informacje:
android.enableD8=false
W przypadku projektów, które
korzystają z funkcji języka Java 8,
domyślnie włączone jest przyrostowe usuwanie cukru. Możesz je wyłączyć, określając w pliku gradle.properties projektu te informacje:
android.enableIncrementalDesugaring=false.
Użytkownicy wersji testowych: jeśli używasz już wersji testowej D8, pamiętaj, że kompiluje ona teraz biblioteki zawarte 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 , otrzymasz błąd kompilacji.
Zmiany w zachowaniu
-
Podczas tworzenia wielu plików APK, z których każdy jest przeznaczony dla innego ABI, nie generuje już domyślnie plików APK dla tych ABI:
mips,mips64iarmeabi.Jeśli chcesz tworzyć pliki APK przeznaczone dla tych ABI, musisz użyć NDK r16b lub starszej wersji i określić 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 wtyczki Androida usuwa teraz wpisy starsze niż 30 dni.
-
Przekazywanie wartości
"auto"doresConfignie powoduje już automatycznego wybierania zasobów ciągów do spakowania w pliku APK. Jeśli nadal będziesz używać wartości"auto", wtyczka spakuje wszystkie zasoby ciągów, które udostępnia Twoja aplikacja i jej zależności. Zamiast tego musisz określić każdą lokalizację, którą chcesz spakować w pliku APK. -
Ponieważ moduły lokalne nie mogą zależeć od testowego pliku APK aplikacji, dodanie zależności do testów z instrumentacją za pomocą konfiguracji
androidTestApizamiastandroidTestImplementationpowoduje 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ązaliśmy problem polegający na tym, że Android Studio nie rozpoznawało prawidłowo zależności w kompilacjach złożonych.
- Rozwiązaliśmy problem polegający na tym, że podczas wielokrotnego wczytywania wtyczki Androida w jednej kompilacji (np. gdy wiele podprojektów zawiera wtyczkę Androida w ścieżce klasy skryptu kompilacji) pojawiał się błąd synchronizacji projektu.