Wtyczka Androida do obsługi Gradle 8.2.0 (listopad 2023 r.)
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Wtyczka Androida do obsługi Gradle w wersji 8.2.0 to duża aktualizacja, która zawiera wiele nowych funkcji i ulepszeń.
Zgodność
Maksymalny poziom interfejsu API obsługiwany przez wtyczkę Gradle 8.2 to poziom 34.
Oto inne informacje o zgodności:
Nowe makro do określania ścieżki do JDK
#GRADLE_LOCAL_JAVA_HOME
to nowe makro, które umożliwia określenie ścieżki do JDK. Dzięki temu łatwiej i bezpieczniej można określić ścieżkę do katalogu domowego Java, która jest używana do wykonywania demona Gradle (procesu w tle) w Twoim projekcie. Wybór ścieżki jest przechowywany w polu java.home
w pliku .gradle/config.properties
. Aby ustawić to pole, otwórz ustawienia JDK w Android Studio: Plik (lub Android Studio w przypadku systemu macOS) > Ustawienia > Kompilacja, wykonanie, wdrożenie > Narzędzia kompilacji > Gradle.
Nowe projekty będą domyślnie używać #GRADLE_LOCAL_JAVA_HOME
. Istniejące projekty zostaną automatycznie przeniesione do nowego makra po pomyślnej synchronizacji, chyba że używasz już makra, np. #JAVA_HOME
.
Główne zalety nowego makra:
- Możesz ręcznie zmienić ścieżkę do JDK, aby wywołać synchronizację bez otwierania projektu.
- Mniej błędów związanych z niezgodnymi wersjami Gradle i JDK, ponieważ istnieje jedno źródło informacji o wybranym Gradle JDK.
Rozwiązane problemy
Wtyczka Androida do obsługi Gradle 8.2.0
Rozwiązane problemy |
Wtyczka Gradle na Androida |
Typy niestandardowych źródeł powinny tworzyć źródła o wielu smakach
|
Sprawdzanie wersji pakietu SDK nie obsługuje użytkowników rozszerzeń pakietu SDK
|
DependenciesInfoBuilder wymaga aktualizacji interfejsu API i dokumentacji
|
DexingNoClasspathTransform (minSdk >= 24) z obiektem Java 11 kończy się niepowodzeniem z powodu braku elementów zagnieżdżonych
|
DslExtension.Builder.extendProjectWith() nie działa zgodnie z opisem w Groovy
|
Dodaj interfejs API VariantSelector.withFlavor, który nie używa kotlin.Pair
|
AndroidLintAnalysisTask ( :lintAnalyzeExternalRelease) nie znalazł danych w pamięci podręcznej, ponieważ plik „proguard.txt” uległ zmianie
|
Złączony plik manifestu aplikacji zawiera atrybuty extractNativeLibs i useEmbeddedDex z zależnych bibliotek
|
AIDL nie działa z build-tools 33.0.0
|
AGP: udostępnienie ścieżki do narzędzia AIDL i pliku AIDL jako publicznego interfejsu API
|
Prośba: umożliwienie IDE oferowania poprawki dla błędu „PermittedSubclasses requires ASM9”
|
podczas kompilowania AGP wybierz kod bajtowy 17.
|
Usuń VariantManager.getModifiedName
|
Ustawienie AndroidTest.packaging.jniLibs.keepDebugSymbols nie ma wpływu na pakowanie androidTest
|
Zawieszanie się zadań testu instrumentacji GMD i nieudane próby ponownego uruchomienia
|
Funkcja generateLocaleConfig w wersji agp 8.1.0 używa niedeterministycznego sortowania, co powoduje niespójność kompilacji z możliwością odtworzenia.
|
Plik ProcessApplicationManifest.navigation.json zawiera ścieżki bezwzględne.
|
Po utworzeniu usługi AnalyticsService nie można uzyskać dostępu do GradleBuildProject.Builder za pomocą AnalyticsConfiguratorService.
|
Ustawienie AndroidTest.packaging.jniLibs.keepDebugSymbols nie ma wpływu na pakowanie androidTest
|
Kompilacja dozwolona dla nielegalnych wartości kolorów
|
Nieprawidłowa wartość „ReplaceWith” w przypadku narzędzia VariantBuilder
|
Gradle 8.1 powoduje przerwanie buforowania konfiguracji z powodu pliku .gradle/.android/analytics.settings
|
Komunikaty o wycofaniu nie używają parametru „ReplaceWith”.
|
Udostępnij sposób uzyskania domyślnej wersji NDK
|
Wtyczka Androida do obsługi Gradle wymaga wersji Java 17.
|
Niezgodność funkcji ASM Transform i toAppend()
|
Rozwiązywanie problemów z błędami Lint podczas uruchamiania lint z K2 UAST za pomocą Gradle w projekcie KMP
|
Obsługa strategii braku wymiaru na poziomie wariantu i możliwe tworzenie typu/smakowania dopasowania do zapasowego.
|
W Android Studio Giraffe usunięto parametr `android.injected.studio.version`.
|
Dodanie możliwości wyłączenia AndroidXDependencyCheck
|
Funkcja generateLocaleConfig w wersji agp 8.1.0 używa niedeterministycznego sortowania, co powoduje niespójność kompilacji z możliwością odtworzenia.
|
Zamieszczanie w metadanych AAR informacji o wymaganiach dotyczących wersji R8 / D8 (np.w przypadku coreLibraryDesugaring i nowego wyprowadzania interfejsu API).
|
Ostrzeżenie dotyczące synchronizacji: „Po utworzeniu usługi AnalyticsService nie należy uzyskiwać dostępu do klasy GradleBuildProject.Builder za pomocą klasy AnalyticsConfiguratorService”.
|
Zaktualizuj do wersji kamienia milowego lub wersji kandydata Gradle 8.2.
|
Brak dostępu do klasy „java.lang.Comparable”
|
androidResources jest niedostępny w module biblioteki Androida
|
Nie udało się wykonać zadania „:app:mergeReleaseClasses” po zaktualizowaniu AGP z wersji 8.0.2 do 8.1.0
|
Gradle 8.1 powoduje przerwanie buforowania konfiguracji z powodu pliku .gradle/.android/analytics.settings
|
[AGP 8.1.0] ./gradlew test fails with "Unable to find manifest output" if both splits.abi.isEnable and testOptions.unitTests.isIncludeAndroidResources are true
|
Android Studio Giraffe nie uwzględnia wersji versionCodeOverride w AGP 8.1
|
AGP 8.1.0 odinstalowuje aplikację po uruchomieniu testów z instrumentacją, a 7.4.2 tego nie robi
|
Przekształcanie pliku APK powoduje błąd w ListingFileRedirectTask
|
HEDGEHOG REGRESSION: przycisk Uruchom jest opóźniony o kilka sekund (tworzenie specyfikacji)
|
|
Dexer (D8) |
Włączanie natywnych klas rekordów i zamkniętych podczas dekodowania w przypadku wersji min-api 34 i nowszych
|
|
Lint |
Sprawdzanie lint dla instancjonowania nie obsługuje dobrze AppComponentFactory
|
Wersje alfa Lint 8.2.0 nadal nie obsługują importowania funkcji najwyższego poziomu w Kotlinie
|
Dodanie opcji umożliwiającej pominięcie numerów wierszy i kolumn w podstawowym zestawie danych lint
|
Dodanie opcji umożliwiającej pominięcie numerów wierszy i kolumn w podstawowym zestawie danych lint
|
Testy Lint nie obsługują funkcji języka Java 17
|
Bumblebee 2021.1.1 Patch 1 podaje, że stara wersja (20030203.000550) commons-io jest nowsza niż 2.11.0.
|
Wersje alfa Lint 8.2.0 nadal nie obsługują importowania funkcji najwyższego poziomu w Kotlinie
|
Bumblebee 2021.1.1 Patch 1 podaje, że stara wersja (20030203.000550) commons-io jest nowsza niż 2.11.0.
|
Android Studio nieprawidłowo oznacza wybraną wersję jako nieaktualną.
|
Lint ignoruje problem z UseValueOf podczas używania K2 UAST
|
nieoczekiwane problemy z innego projektu oznaczone przez Android Lint,
|
Android Lint nie działa w przypadku biblioteki KMP, gdy „właściwość 'variantInputs.name' nie ma skonfigurowanej wartości”.
|
|
Integracja z lintem |
Błąd lint DuplicatePlatformClasses z powodu zależności od testImplementation
|
|
Shrinker (R8) |
java.lang.VerifyError: Verifier rejected class
|
Kompilacja utknęła na etapie :minifyReleaseWithR8 podczas używania biblioteki Apache POI
|
Kotlin 1.9 powoduje, że funkcje anonimowe Kotlina są usuwane przez R8, jeśli usunięto nullcheck.
|
|
Wtyczka Androida do obsługi Gradle 8.2.1
Rozwiązane problemy |
Wtyczka Gradle na Androida |
Nie uruchamiaj zadania dekompilacji w przypadku klas w podprojektach, które zostały już zdekompilowane w ramach przekształcania artefaktów
|
Wtyczka Androida do obsługi Gradle nie działała prawidłowo w przypadku JavaVersion.VERSION_11 i OpenJDK 21 ea
|
|
Dexer (D8) |
Desugarowanie rekordów w Android U
|
|
Shrinker (R8) |
R8 generuje uszkodzony dex, co powoduje wyjątek podczas wykonywania kodu w klasie
|
R8 powodujący zmianę interfejsu na niedostępny
|
Awaria pakietu Flurry SDK w wersji 8.2.0 w ramach AGP
|
Android – R8 powoduje awarię podklasy LinearLayoutManager
|
ClassCastException w R8, gdy repackaging jest włączony, a skompresowanie, zaciemnianie i optymalizacja są wyłączone
|
R8 utknął w BridgeAnalyzer.analyzeMethod
|
R8 w wersji 8.2.33, awaria w czasie wykonywania wywołana przez błąd „java.lang.VerifyError: Bad type on operand stack”
|
|
Wtyczka Androida do obsługi Gradle 8.2.2
Rozwiązane problemy |
Wtyczka Gradle na Androida |
Nie można ustawić wersji JaCoCo w AGP 8.2.0
|
|
Dexer (D8) |
[desugared library] Desugared library version 2.1 is not compatible with previous versions of R8
|
Czy optymalizacje są przeprowadzane tylko z D8?
|
|
Shrinker (R8) |
[R8 8.3.21] R8 8.3.21 jest o 1,57 MB większy niż R8 8.1.56
|
class.getInterfaces() zwraca pustą wartość
|
|
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-02-28 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-02-28 UTC."],[],[]]