System kompilacji Android Studio jest oparty na Gradle, a wtyczka Androida do obsługi Gradle dodaje kilka funkcji, które są charakterystyczne dla aplikacji na Androida. Chociaż wtyczka Androida do obsługi Gradle (AGP) jest zwykle aktualizowana w ramach blokady za pomocą Androida Studio, wtyczka (i reszta systemu Gradle) może działać niezależnie od Android Studio i aktualizować oddzielnie.
Z tego artykułu dowiesz się, jak dbać o aktualność narzędzi Gradle i jakie są najnowsze aktualizacje. Informacje o poprzednich wersjach wtyczki Androida do obsługi Gradle znajdziesz w wcześniejszych informacjach o wersjach.
Aby zobaczyć, jakie poprawki zostały naprawione w tej wersji wtyczki Androida do obsługi Gradle, zapoznaj się z zamkniętymi problemami.
Ogólne podsumowanie nadchodzących zmian powodujących niezgodność we wtyczce Androida do obsługi Gradle znajdziesz w harmonogramie wtyczki Androida do obsługi Gradle.
Szczegółowe informacje o konfigurowaniu kompilacji Androida za pomocą Gradle znajdziesz na tych stronach:
- Konfigurowanie kompilacji
- Dokumentacja DSL wtyczki Androida do obsługi Gradle
- Dokumentacja DSL Gradle
- Przewodnik po wydajności Gradle
Więcej informacji o systemie kompilacji Gradle znajdziesz w przewodniku użytkownika Gradle.
Aktualizowanie wtyczki Androida do obsługi Gradle
Gdy zaktualizujesz Androida Studio, możesz zobaczyć prośbę o automatyczne zaktualizowanie wtyczki Androida do obsługi Gradle do najnowszej wersji. Możesz zaakceptować aktualizację lub ręcznie określić wersję zgodnie z wymaganiami projektu dotyczącymi kompilacji.
Wersję wtyczki możesz określić w menu Plik > Struktura projektu > Projekt w Android Studio lub w pliku build.gradle.kts
najwyższego poziomu. Wersja wtyczki ma zastosowanie do wszystkich modułów utworzonych w tym projekcie Android Studio. Ten przykład ustawia wersję wtyczki na wersję 8.3.0 z pliku build.gradle.kts
:
Kotlin
plugins { id("com.android.application") version "8.3.0" apply false id("com.android.library") version "8.3.0" apply false id("org.jetbrains.kotlin.android") version "1.9.23" apply false }
Odlotowy
plugins { id 'com.android.application' version '8.3.0' apply false id 'com.android.library' version '8.3.0' apply false id 'org.jetbrains.kotlin.android' version '1.9.23' apply false }
Uwaga: w numerach wersji nie używaj zależności dynamicznych, np. 'com.android.tools.build:gradle:8.3.+'
.
Korzystanie z tej funkcji może spowodować nieoczekiwane aktualizacje wersji i trudności w rozwiązywaniu różnic między wersjami.
Jeśli określona wersja wtyczki nie została pobrana, Gradle pobierze ją, gdy następnym razem będziesz tworzyć projekt lub kliknij Plik > Synchronizuj projekt z plikami Gradle na pasku menu Android Studio.
Aktualizowanie Gradle
Podczas aktualizowania Androida Studio możesz zobaczyć prośbę o zaktualizowanie Gradle do najnowszej wersji. Możesz zaakceptować aktualizację lub ręcznie określić wersję zgodnie z wymaganiami projektu dotyczącymi kompilacji.
W tabeli poniżej znajdziesz listę wersji Gradle, która jest wymagana w przypadku poszczególnych wersji wtyczki Androida do obsługi Gradle. Aby uzyskać najlepszą wydajność, użyj najnowszej możliwej wersji Gradle i wtyczki.
Wersja wtyczki | Minimalna wymagana wersja Gradle |
---|---|
8.4 (alfa) | 8.6-rc-1 |
8.3 | 8.4 |
8.2 | 8.2 |
8.1 | z Androidem 8.0 |
z Androidem 8.0 | z Androidem 8.0 |
7.4 | 7,5 |
Starsze wersje
Wersja wtyczki | Wymagana wersja Gradle |
---|---|
7.3 | 7.4 |
7.2 | 7.3.3 |
7.1 | 7.2 |
7,0 | 7,0 |
4.2.0+ | 6.7.1 |
4.1.0+ | 6,5+ |
4.0.0+ | 6.1.1 i nowsze |
3.6.0–3.6.4 | 5.6.4 i nowsze |
3.5.0–3.5.4 | 5.4.1 i nowsze |
3.4.0–3.4.3 | 5.1.1 i nowsze |
3.3.0–3.3.3 | 4.10.1+ |
3.2.0–3.2.1 | 4,6+ |
3.1.0+ | 4,4+ |
3.0.0+ | 4.1 i nowsze |
2.3.0+ | 3,3+ |
2.1.3–2.2.3 | 2.14.1–3,5 |
2.0.0–2.1.2 | 2.10–2.13 |
1,5 | 2.2.1–2.13 |
1.2.0–1.3.1 | 2.2.1–2.9 |
1.0.0–1.1.3 | 2.2.1–2.3 |
Wersję Gradle możesz określić w menu Plik > Struktura projektu > Projekt w Android Studio. Wersję Gradle możesz też zaktualizować przy użyciu wiersza poleceń.
Preferowanym sposobem jest użycie narzędzia wiersza poleceń Gradle Wrapper, które aktualizuje skrypty gradlew
. Poniższy przykład ustawia wersję Gradle na 8.3 za pomocą otoki Gradle.
Pamiętaj, że musisz uruchomić to polecenie dwukrotnie, aby uaktualnić zarówno Gradle, jak i samą paczkę Gradle (więcej informacji znajdziesz w artykule o uaktualnianiu otoki Gradle).
gradle wrapper --gradle-version 8.3
W niektórych przypadkach może to jednak się nie powieść, np. jeśli po niedawna zostało zaktualizowane AGP, które nie jest już zgodne z obecną wersją Gradle. W tym przypadku musisz edytować odniesienie do dystrybucji Gradle w pliku gradle/wrapper/gradle-wrapper.properties
. Poniższy przykład ustawia wersję Gradle na 8.3 w pliku gradle-wrapper.properties
.
...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.3-bin.zip
...
Wtyczka Android do obsługi Gradle i zgodność ze Android Studio
System kompilacji Android Studio jest oparty na Gradle, a wtyczka Android do obsługi Gradle (AGP) dodaje kilka funkcji charakterystycznych dla tworzenia aplikacji na Androida. W tabeli poniżej znajdziesz listę wersji AGP, która jest wymagana w przypadku każdej wersji Androida Studio.
Wersja Android Studio | Wymagana wersja AGP |
---|---|
Jellyfish | 1.03.2023 r. | 3,2–8,4 |
Iguana | 1.2023 r. | 3,2–8,3 |
Hedgehog | 1.1023.2023 | 3,2–8,2 |
Żyrafa | 1.3.2022 r. | 3,2–8.1 |
Flamingo | 1.2022.2022 | 3,2–8,0 |
Węgorz elektryczny | 1.1.2022 r. | 3,2–7,4 |
Starsze wersje
Wersja Android Studio | Wymagana wersja AGP |
---|---|
Dolphin | 1.3.2021 r. | 3,2–7,3 |
Wiewiórka | 1.02.2021 r. | 3,2–7,2 |
Bumblebee | 1.1.2021 r. | 3,2–7,1 |
Arctic Fox | 3.03.2020 r. | 3,1–7,0 |
Nowości we wtyczce Androida do obsługi Gradle znajdziesz w informacjach o wersji wtyczki Androida do obsługi Gradle.
Minimalne wersje narzędzi na poziomie interfejsu Android API
Istnieją minimalne wersje Android Studio i AGP, które obsługują określony poziom interfejsu API. Używanie starszych wersji Androida Studio lub AGP niż te wymagane przez targetSdk
lub compileSdk
projektu może spowodować nieoczekiwane problemy. Zalecamy korzystanie z najnowszej wersji testowej Android Studio i AGP przy projektach kierowanych na wersje przedpremierowe systemu operacyjnego Android. Możesz zainstalować podglądy Androida Studio obok wersji stabilnej.
Minimalne wersje Android Studio i AGP to:
Poziom interfejsu API | Minimalna wersja Android Studio | Minimalna wersja AGP |
---|---|---|
Wersja testowa VanillaIceCream | Jellyfish | 1.03.2023 r. | 8.4 |
34 | Hedgehog | 1.1023.2023 | 8.1.1 |
33 | Flamingo | 1.2022.2022 | 7.2 |
Zmiany dotyczące obsługi wersji (listopad 2020 r.)
Aktualizujemy numerację wersji wtyczki Androida do obsługi Gradle (AGP), aby była bardziej zbliżona do bazowego narzędzia do kompilacji Gradle.
Oto najważniejsze zmiany:
AGP będzie teraz używać semantycznej obsługi wersji, a zmiany powodujące niezgodność będą uwzględniane w głównych wersjach.
Co roku będzie publikowana 1 wersja główna AGP zgodnie z wersją główną Gradle.
Po wersji 4.2 wersja po 4.2 będzie to 7.0 i będzie wymagać uaktualnienia do Gradle w wersji 7.x. Każda główna wersja AGP będzie wymagała znacznego uaktualnienia wersji podstawowego narzędzia Gradle.
Interfejsy API zostaną wycofane mniej więcej z rocznym wyprzedzeniem, a funkcje ich wymiany będą udostępniane równocześnie. Wycofane interfejsy API zostaną usunięte około roku później podczas kolejnej głównej aktualizacji.
Zgodność
Maksymalny poziom interfejsu API obsługiwany przez wtyczkę Androida do obsługi Gradle w wersji 8.3 to poziom API 34. Inne informacje dotyczące zgodności:
Wersja minimalna | Wersja domyślna | Uwagi | |
---|---|---|---|
Gradle | 8.4 | 8.4 | Aby dowiedzieć się więcej, zobacz aktualizowanie Gradle. |
Narzędzia do kompilacji SDK | 34,0.0 | 34,0.0 | Zainstaluj lub skonfiguruj narzędzia do kompilacji SDK. |
Zestaw NDK | Nie dotyczy | 25.1.8937393 | Zainstaluj lub skonfiguruj inną wersję pakietu NDK. |
JDK | 17 | 17 | Więcej informacji znajdziesz w sekcji na temat ustawiania wersji JDK. |
Oto nowe funkcje wtyczki Androida do obsługi Gradle w wersji 8.3.
Wersje poprawek
Poniżej znajduje się lista poprawek wersji Androida Studio Iguana i wtyczki Androida do obsługi Gradle w wersji 8.3.
Android Studio Iguana | Poprawka 2 i 3.02.2023.2.1 (kwiecień 2024 r.)
Ta drobna aktualizacja zawiera poprawki błędów.
Android Studio Iguana | Poprawka 1 w wersji 1 i 8.3.1 w wersji 2023.2.1 (marzec 2024 r.)
Ta drobna aktualizacja zawiera poprawki błędów.
Obsługa katalogów wersji Gradle
Android Studio obsługuje katalogi wersji Gradle na platformie TOML, czyli funkcję, która umożliwia zarządzanie zależnościami w jednej centralnej lokalizacji i udostępnianie zależności między modułami lub projektami. Android Studio ułatwia teraz konfigurowanie katalogów wersji przez sugestie edytorów oraz integrację z oknem Struktura projektu. Dowiedz się, jak skonfigurować katalogi wersji Gradle lub jak przenieść kompilację do katalogów wersji.
Uzupełnianie kodu i poruszanie się po nim
Android Studio umożliwia uzupełnianie kodu podczas edytowania katalogu wersji w formacie pliku TOML lub dodawania zależności z katalogu wersji do pliku kompilacji. Aby użyć uzupełniania kodu, naciśnij Ctrl+spacja (Command+spacja w systemie macOS). Możesz też szybko przejść z odwołania do zależności w pliku build.gradle
aplikacji do miejsca zadeklarowanego w katalogu wersji, naciskając Ctrl+b (Command+b w systemie macOS).
Integracja z oknem Struktura projektu
Jeśli Twój projekt używa katalogu wersji zdefiniowanego w formacie pliku TOML, możesz edytować zdefiniowane w nim zmienne w oknie Struktura projektu w widoku Zmienne (Plik > Struktura projektu > Zmienne) w Android Studio. Dla każdego katalogu wersji dostępne jest menu z listą zmiennych. Aby edytować zmienną, kliknij jej wartość i zastąp ją. Po zapisaniu tych zmian plik TOML jest odpowiednio aktualizowany.
Zależności możesz też zaktualizować w widoku Zależności w oknie Struktura projektu (Plik > Struktura projektu > Zależności). Aby zaktualizować wersje za pomocą okna Struktura projektu, przejdź do modułu i zależności, które chcesz edytować, a następnie zaktualizuj pole Żądana wersja. Gdy zapiszesz te zmiany, plik TOML zostanie odpowiednio zaktualizowany. Pamiętaj, że jeśli wersja zależności została zdefiniowana za pomocą zmiennej, bezpośrednie zaktualizowanie wersji w ten sposób spowoduje zastąpienie zmiennej zakodowaną na stałe wartością. Pamiętaj też, że usunięcie zależności z pliku kompilacji niezależnie od tego, czy użyjesz okna Struktura projektu, nie usuwa zależności z katalogu wersji.
Znane problemy i ograniczenia
Poniżej znajdziesz znane problemy lub ograniczenia związane z obsługą katalogów wersji Gradle w Android Studio.
Podczas wyróżniania deklaracji aliasów wtyczek w plikach skryptu Kotlin wystąpił błąd: gdy dodajesz deklarację wtyczki w formularzu
alias(libs.plugins.example)
, edytor dodaje czerwone podkreślenie w częścilibs
. Jest to znany problem w Gradle w wersji 8.0 i starszych. Zostanie on rozwiązany w przyszłej wersji Gradle.Android Studio obsługuje tylko katalogi wersji w formacie TOML. Obecnie obsługa uzupełniania kodu, nawigacji i struktury projektu w Android Studio jest obecnie dostępna tylko w przypadku katalogów wersji zdefiniowanych w formacie pliku TOML. Nadal możesz jednak dodać katalog wersji bezpośrednio w pliku
settings.gradle
i używać jego zależności w projekcie.Nawigacja po plikach kompilacji KTS: przechodzenie do definicji zależności w katalogu wersji za pomocą skrótu Control+kliknięcie (Command + kliknięcie w systemie macOS) nie jest jeszcze obsługiwane w przypadku plików kompilacji napisanych za pomocą skryptu Kotlin.
Asystent Firebase dodaje zależności bezpośrednio w skryptach kompilacji: Asystent Firebase dodaje zależności bezpośrednio do skryptów kompilacji, a nie przez katalogi wersji.
Funkcja „Znajdź przypadki użycia” nie jest obsługiwana: znajdowanie przypadków użycia zmiennej katalogu wersji w innych plikach kompilacji nie jest jeszcze obsługiwane niezależnie od tego, czy plik kompilacji znajduje się w KTS, czy w Groovy. Oznacza to, że użycie Control i kliknięcie (Command w systemie macOS) definicji zmiennej w katalogu wersji nie prowadzi do plików kompilacji, w których jest ona używana.
Okno Struktura projektu w Android Studio pokazuje wiele plików katalogu, jeśli znajdują się one w głównym folderze
gradle
, ale nie pokazują katalogów w przypadku kompozytowej kompilacji. Jeśli na przykład masz 2 pliki katalogu – jeden dla aplikacji, a drugi dla kompilacji złożonej – w oknie Struktura projektu pojawi się tylko plik katalogu aplikacji. Możesz użyć kompilacji złożonej, ale musisz bezpośrednio edytować jej plik TOML.
Dodatkowe informacje o pakietach SDK: problemy ze zgodnością z zasadami
Android Studio wyświetla ostrzeżenia o lintowaniu w plikach build.gradle.kts
i build.gradle
oraz w oknie struktury projektu w przypadku publicznych pakietów SDK, które naruszają zasady Google Play na platformie Google Play SDK Index. Zaktualizuj wszystkie zależności, które naruszają zasady Google Play, ponieważ mogą one uniemożliwić Ci publikowanie treści w Konsoli Google Play w przyszłości. Ostrzeżenia o naruszeniu zasad stanowią uzupełnienie ostrzeżeń o nieaktualnych wersjach wyświetlanych w Android Studio.
Obsługa wersji pliku buildSdk w Android Studio
Android Studio wyświetla ostrzeżenie, jeśli w projekcie używasz zasobu compileSdk
, który nie jest obsługiwany w bieżącej wersji Android Studio. Jeśli to możliwe, sugeruje też przejście na wersję Android Studio, która obsługuje interfejs compileSdk
używany w Twoim projekcie. Pamiętaj, że uaktualnienie Androida Studio może też wymagać przejścia na AGP.
AGP wyświetla też ostrzeżenie w oknie narzędzia Build, jeśli compileSdk
używany w Twoim projekcie nie jest obsługiwany w bieżącej wersji AGP.
Zmiany działania lint
Począwszy od wtyczki Androida do obsługi Gradle w wersji 8.3.0-alfa02, gdy uruchamiasz lint w module, dla jego głównego i testowego komponentu są wykonywane osobne zadania analizy lint. Ta zmiana ma na celu poprawę skuteczności.
Aby przywrócić wcześniejsze działanie, ustaw parametr android.experimental.lint.analysisPerComponent=false
w pliku gradle.properties
.
Precyzyjne zmniejszanie zasobów domyślnie włączone
Precyzyjne zmniejszanie zasobów, które usuwa nieużywane wpisy z pliku resources.arsc
i eliminuje nieużywane pliki zasobów, jest domyślnie włączone.
Gdy to zmniejszanie jest włączone, tabela zasobów jest zmniejszona i w pliku APK uwzględniane są tylko odwołania do res
wpisów folderu.
Aby wyłączyć precyzyjne zmniejszanie zasobów, ustaw android.enableNewResourceShrinker.preciseShrinking
na false
w pliku gradle.properties
projektu.