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 36.1. 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. |
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
W AGP 9.2.0 uwzględniono te zmiany w R8.
Bardziej rygorystyczna semantyka -keepattributes w przypadku zachowywania niewidocznych w czasie działania adnotacji
Adnotacji niewidocznych w czasie działania nie można odczytać w czasie działania. D8 bezwarunkowo usuwa adnotacje niewidoczne w czasie działania 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 D8, wzorce -keepattributes
z symbolami wieloznacznymi nie 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ć negatywne wzorce nazw elementów.
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 wynikowej.
Rozwiązane problemy
Wtyczka Androida do obsługi Gradle w wersji 9.2.0-alpha04
| Rozwiązane problemy | |||
|---|---|---|---|
| Wtyczka Androida do obsługi Gradle |
|
||
Wtyczka Androida do obsługi Gradle w wersji 9.2.0-alpha03
| Rozwiązane problemy | |||
|---|---|---|---|
| Wtyczka Androida do obsługi Gradle |
|
||
| Linter |
|
||
| Integracja z linterem |
|
||
Wtyczka Androida do obsługi Gradle w wersji 9.2.0-alpha02
| Rozwiązane problemy | ||||
|---|---|---|---|---|
| Wtyczka Androida do obsługi Gradle |
|
|||
| Integracja z linterem |
|
|||
Wtyczka Androida do obsługi Gradle w wersji 9.2.0-alpha01
| Rozwiązane problemy | |||||
|---|---|---|---|---|---|
| Wtyczka Androida do obsługi Gradle |
|
||||
| Linter |
|
||||