Wtyczka Androida do obsługi Gradle w wersji 1.5.0 (listopad 2015 r.)
- Zależności:
- Uwagi ogólne:
-
- Wtyczkę Data Binding zintegrowano z wtycką Androida do obsługi Gradle. Aby go włączyć, dodaj ten kod do każdego pliku
build.gradle
w ramach projektu, który używa wtyczki: - Dodano nowy interfejs Transform API, aby umożliwić wtyczkom innych firm manipulowanie skompilowanymi plikami
.class
przed ich przekształceniem w pliki.dex
. Interfejs Transform API upraszcza wstrzykiwanie niestandardowych manipulacji klasami, zapewniając jednocześnie większą elastyczność w zakresie tego, czym można manipulować. Aby wstawić przekształcenie do kompilacji, utwórz nową klasę implementującą jeden z interfejsówTransform
i zarejestruj ją za pomocąandroid.registerTransform(theTransform)
lubandroid.registerTransform(theTransform, dependencies)
. Nie musisz łączyć zadań ze sobą. Uwaga: - Transformację można zastosować do co najmniej jednego z tych elementów: bieżącego projektu, podprojektów i bibliotek zewnętrznych.
- Transformacja musi być zarejestrowana globalnie, co oznacza, że zostanie zastosowana do wszystkich wariantów.
- Przetwarzanie kodu wewnętrznego za pomocą biblioteki Java Code Coverage Library (JaCoCo), ProGuard i MultiDex korzysta teraz z interfejsu Transform API. Jednak pakiet Java Android Compiler Kit (Jack) nie korzysta z tego interfejsu API: korzysta z niego tylko ścieżka kodu
javac/dx
. - Gradle wykonuje przekształcenia w tej kolejności: JaCoCo, wtyczki innych firm, ProGuard. Kolejność wykonywania wtyczek innych firm odpowiada kolejności dodawania przez nie przekształceń. Deweloperzy wtyczek innych firm nie mogą kontrolować kolejności wykonywania przekształceń za pomocą interfejsu API.
- wycofanie z użycia metody
dex
getter z klasyApplicationVariant
. Nie możesz już uzyskać dostępu do zadaniaDex
za pomocą interfejsu API wariantów, ponieważ jest ono teraz wykonywane za pomocą transformacji. Obecnie nie ma żadnego zamiennika dla procesu dex. - Naprawiono obsługę dodatkowych komponentów.
- Ulepszona obsługa MultiDex – udostępnienie tej funkcji w projektach testowych. Testy mają teraz automatycznie zależność
com.android.support:multidex-instrumentation
. - Dodano możliwość prawidłowego przerwania kompilacji Gradle i zgłoszenia przyczyny błędu, gdy kompilacja Gradle wywołuje zadania asynchroniczne, a proces roboczy zakończył się niepowodzeniem.
- Dodano obsługę konfigurowania konkretnego interfejsu binarnego aplikacji (ABI) w wariantach zawierających wiele interfejsów ABI.
- Dodano obsługę listy numerów seryjnych urządzeń rozdzielonych przecinkami dla zmiennej środowiskowej
ANDROID_SERIAL
podczas instalowania i uruchamiania testów. - Usunięto błąd instalacji na urządzeniach z Androidem 5.0 (interfejs API na poziomie 20) lub nowszym, gdy nazwa pliku APK zawiera spacje.
- Rozwiązaliśmy różne problemy związane z wyświetlaniem błędów w Android Asset Packaging Tool (AAPT).
- Dodano obsługę przyrostowego pomiaru JaCoCo na potrzeby szybszych kompilacji przyrostowych. Wtyczka Androida do obsługi Gradle wywołuje teraz bezpośrednio instrumentator JaCoCo. Aby wymusić nowszą wersję JaCoCo, musisz ją dodać jako zależność skryptu kompilacji.
- Rozwiązano problem z obsługą JaCoCo, aby ignorować pliki, które nie są klasami.
- Dodano obsługę wektorowych obrazów według potrzeb w ramach generowania plików PNG na etapie kompilacji w celu zapewnienia zgodności wstecznej.
Wtyczka Androida do obsługi Gradle generuje pliki PNG dla każdego wektora drawable znalezionego w katalogu zasobów, który nie określa wersji interfejsu API lub określa atrybut
android:minSdkVersion
o wartości 20 lub niższej w elemencie<uses-sdk>
w manifeście aplikacji. Gęstość plików PNG możesz ustawić, używając właściwościgeneratedDensities
w sekcjidefaultConfig
lubproductFlavor
w plikubuild.gradle
. - Dodano udostępnianie obiektu
android.jar
, który jest generowany przez wtyczkę tylko raz i służy do testowania jednostkowego. Teraz udostępniają go różne moduły, np.app
ilib
. Usuń plik$rootDir/build
, aby wygenerować go ponownie. - Zmieniliśmy przetwarzanie zasobów Javy tak, aby odbywało się przed zadaniami zaciemniania zamiast podczas pakowania pliku APK. Ta zmiana umożliwia zadaniom zaciemniania dostosowanie zasobów Javy po zaciemnieniu pakietów.
- Wyeliminowaliśmy problem z korzystaniem z kodu Java Native Interface (JNI) w pluginie biblioteki eksperymentalnej.
- Dodaliśmy możliwość ustawienia wersji platformy niezależnie od atrybutu
android:compileSdkVersion
w pluginie experimental library.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- Wtyczkę Data Binding zintegrowano z wtycką Androida do obsługi Gradle. Aby go włączyć, dodaj ten kod do każdego pliku
Minimalna wersja | Wersja domyślna | Uwagi | |
---|---|---|---|
Gradle | 2.2.1 | 2.2.1 | Więcej informacji znajdziesz w artykule Aktualizowanie Gradle. |
Narzędzia do kompilowania pakietu SDK | 21.1.1 | 21.1.1 | Zainstaluj lub skonfiguruj narzędzia do kompilowania pakietu SDK. |