Wtyczka Androida do obsługi Gradle w wersji 9.2 to wersja pomocnicza, która zawiera wiele nowych funkcji i ulepszeń.
Zgodność
Maksymalny poziom interfejsu API obsługiwany przez wtyczkę Androida do obsługi Gradle w wersji 9.2 to poziom 37.0. Inne informacje o zgodności:
| Wersja minimalna | Wersja domyślna | Uwagi | |
|---|---|---|---|
| Gradle | 9.4.1 | 9.4.1 | Więcej informacji znajdziesz w artykule o aktualizowaniu Gradle. |
| Narzędzia do kompilacji pakietu SDK | 36.0.0 | 36.0.0 | Zainstaluj lub skonfiguruj narzędzia SDK do kompilacji. |
| NDK | Nie dotyczy | 28.2.13676358 | Zainstaluj lub skonfiguruj inną wersję NDK. |
| JDK | 17 | 17 | Więcej informacji znajdziesz w artykule o ustawianiu wersji JDK. |
| Wtyczka Gradle do obsługi języka Kotlin (KGP) | 2.2.10 | 2.2.10 | Więcej informacji znajdziesz w artykule Zależność środowiska wykonawczego od wtyczki Gradle do obsługi Kotlina. |
Ujednolicone raporty o pokryciu i testach
AGP 9.2.0-alpha07 wprowadza zadania generowania paneli HTML, które konsolidują wyniki testów i pokrycie z różnych typów testów (jednostkowych i instrumentacyjnych), modułów i wariantów kompilacji, zapewniając kompleksowy przegląd w jednym panelu. Więcej informacji znajdziesz w artykułach Generowanie ujednoliconych raportów o pokryciu kodu i Wyświetlanie ujednoliconych raportów z testów.
Zmiany w R8
Wtyczka Androida do obsługi Gradle 9.2.0 zawiera te zmiany w R8.
Bardziej rygorystyczna semantyka -keepattributes w przypadku zachowywania adnotacji niewidocznych w czasie działania
Adnotacji niewidocznych w czasie działania nie można odczytać w czasie działania. D8 bezwarunkowo usuwa adnotacje niewidoczne w czasie działania programu i nie ma możliwości zmiany tego zachowania.
Aby zapewnić zgodność z ProGuard, R8 obsługuje generowanie niewidocznych w czasie działania adnotacji. Jednak podczas kompilacji do DEX adnotacje niewidoczne w czasie działania nie powinny być zwykle zachowywane. Jednak w przypadku R8 powszechną praktyką jest uwzględnianie wygodnej reguły -keepattributes *Annotation* (bezpośrednio lub pośrednio z reguł zachowywania konsumentów), aby zachować widoczne w czasie działania adnotacje.
Niestety powoduje to również zachowanie niewidocznych adnotacji w czasie działania.
Aby rozwiązać ten problem i lepiej dopasować działanie do D8, wzorce z symbolami wieloznacznymi -keepattributesnie pasują już do RuntimeInvisibleAnnotations, RuntimeInvisibleParameterAnnotations i RuntimeInvisibleTypeAnnotations.
W rezultacie adnotacje niewidoczne w czasie działania będą zachowywane tylko wtedy, gdy nazwa atrybutu zostanie wymieniona wprost bez symboli wieloznacznych.
Żadna z tych reguł nie będzie już utrzymywać adnotacji niewidocznych w czasie działania:
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
Aby zachować niewidoczne adnotacje w czasie działania, użyj tej reguły:
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
Obsługa nazw z negacją w regułach dotyczących członków
Język konfiguracji został rozszerzony, dzięki czemu możesz teraz dopasowywać wzorce nazw elementów z negacją.
Aby na przykład dopasować wszystkie metody, które nie kończą się ciągiem „ForTesting”, użyj tej reguły:
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
Wzorzec nazwy członka grupy można też zanegować w warunku wstępnym -ifreguł. Jeśli wzorzec nazwy wykluczonego elementu zawiera symbole wieloznaczne, nie można się do nich odwoływać w -if regule następnika.
Rozwiązane problemy
Wtyczka Androida do obsługi Gradle w wersji 9.2.1
| Rozwiązane problemy | ||
|---|---|---|
| Wtyczka Androida do obsługi Gradle |
|
|
Wtyczka Androida do obsługi Gradle w wersji 9.2.0
| Rozwiązane problemy | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Wtyczka Androida do obsługi Gradle |
|
|||||||||||||||
| Linter |
|
|||||||||||||||
| Integracja z linterem |
|
|||||||||||||||
| Kompresor (R8) |
|
|||||||||||||||