Note di rilascio del plug-in Android per Gradle 8.7

Il repository JCenter è diventato di sola lettura il 31 marzo 2021. Per ulteriori informazioni, consulta Aggiornamento del servizio JCenter.

Il sistema di compilazione di Android Studio è basato su Gradle e il plug-in Android per Gradle aggiunge diverse funzionalità specifiche per la compilazione di app per Android. Anche se il plug-in Android per Gradle (AGP) viene in genere aggiornato in modo sincrono con Android Studio, il plug-in (e il resto del sistema Gradle) può essere eseguito indipendentemente da Android Studio e aggiornato separatamente.

Questa pagina spiega come mantenere aggiornati gli strumenti Gradle e cosa contengono gli aggiornamenti recenti. Per le note di rilascio delle versioni precedenti del plug-in Android per Gradle, consulta le note di rilascio precedenti.

Per scoprire cosa è stato corretto in questa versione del plug-in Android per Gradle, consulta i problemi chiusi.

Per un riepilogo generale delle modifiche non compatibili imminenti nel plug-in Android per Gradle, consulta la roadmap del plug-in Android per Gradle.

Per informazioni dettagliate su come configurare le build Android con Gradle, consulta le seguenti pagine:

Per ulteriori informazioni sul sistema di compilazione Gradle, consulta la Guida dell'utente di Gradle.

Aggiorna il plug-in Android per Gradle

Quando aggiorni Android Studio, potresti ricevere una richiesta di aggiornare automaticamente il plug-in Android per Gradle all'ultima versione disponibile. Puoi scegliere di accettare l'aggiornamento o specificare manualmente una versione in base ai requisiti di compilazione del progetto.

Puoi specificare la versione del plug-in nel menu File > Struttura del progetto > Progetto in Android Studio o nel file build.gradle.kts di primo livello. La versione del plug-in si applica a tutti i moduli compilati nel progetto Android Studio. L'esempio seguente imposta il plug-in sulla versione 8.7.0 dal file build.gradle.kts:

Kotlin

plugins {
    id("com.android.application") version "8.7.0" apply false
    id("com.android.library") version "8.7.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}

Groovy

plugins {
    id 'com.android.application' version '8.7.0' apply false
    id 'com.android.library' version '8.7.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

Attenzione: non devi utilizzare dipendenze dinamiche nei numeri di versione, ad esempio 'com.android.tools.build:gradle:8.7.+'. L'utilizzo di questa funzionalità può causare aggiornamenti imprevisti delle versioni e difficoltà nel risolvere le differenze tra le versioni.

Se la versione del plug-in specificata non è stata scaricata, Gradle la scarica la volta successiva che compili il progetto o fai clic su File > Sincronizza progetto con i file Gradle dalla barra dei menu di Android Studio.

Aggiorna Gradle

Quando aggiorni Android Studio, potresti ricevere una richiesta di aggiornare anche Gradle alla versione più recente disponibile. Puoi scegliere di accettare l'aggiornamento o specificare manualmente una versione in base ai requisiti di compilazione del progetto.

La tabella seguente elenca la versione di Gradle richiesta per ogni versione del plug-in Android per Gradle. Per ottenere prestazioni ottimali, devi utilizzare la versione più recente possibile sia di Gradle sia del plug-in.

Versione del plug-inVersione minima richiesta di Gradle
8,78.9
8,68,7
8,58,7
8.48,6
8.38.4
8.28.2
8.18.0
8.08.0
7,47,5

Versioni precedenti

Versione del plug-inVersione Gradle richiesta
7,37,4
7.27.3.3
7.17.2
7,07,0
4.2.0 e versioni successive6.7.1
4.1.0 e versioni successive6,5+
4.0.0 e versioni successive6.1.1 e versioni successive
3.6.0 - 3.6.45.6.4 e versioni successive
3.5.0 - 3.5.45.4.1 e versioni successive
3.4.0 - 3.4.35.1.1 e versioni successive
3.3.0 - 3.3.34.10.1 e versioni successive
3.2.0 - 3.2.14.6+
3.1.0 e versioni successive4.4+
3.0.0 e versioni successive4.1+
2.3.0 e versioni successive3.3+
2.1.3 - 2.2.32.14.1 - 3.5
2.0.0 - 2.1.22.10 - 2.13
1.5.02.2.1 - 2.13
1.2.0 - 1.3.12.2.1 - 2.9
1.0.0 - 1.1.32.2.1 - 2.3

Puoi specificare la versione di Gradle nel menu File > Struttura progetto > Progetto in Android Studio oppure aggiornare la versione di Gradle utilizzando la riga di comando. Il metodo preferito è utilizzare lo strumento a riga di comando Gradle Wrapper, che aggiorna gli script gradlew. L'esempio seguente imposta la versione di Gradle su 8.7 utilizzando Gradle Wrapper. Tieni presente che devi eseguire questo comando due volte per eseguire l'upgrade sia di Gradle sia di Gradle Wrapper (per ulteriori informazioni, consulta Eseguire l'upgrade di Gradle Wrapper).

gradle wrapper --gradle-version 8.7

Tuttavia, in alcuni casi l'operazione potrebbe non riuscire, ad esempio se hai appena aggiornato AGP e non è più conforme alla versione corrente di Gradle. In questo caso, devi modificare il riferimento alla distribuzione Gradle nel file gradle/wrapper/gradle-wrapper.properties. L'esempio seguente imposta la versione di Gradle su 8.7 nel file gradle-wrapper.properties.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-bin.zip
...

Compatibilità del plug-in Android Gradle e di Android Studio

Il sistema di compilazione di Android Studio è basato su Gradle e il plug-in Android Gradle (AGP) aggiunge diverse funzionalità specifiche per la creazione di app per Android. La tabella seguente elenca la versione di AGP richiesta per ogni versione di Android Studio.

Versione di Android Studio Versione AGP richiesta
Ladybug | 2024.2.1 3,2-8,7
Rilascio di funzionalità Koala | 2024.1.2 3,2-8,6
Koala | 2024.1.1 3,2-8,5
Jellyfish | 2023.3.1 3,2-8,4
Iguana | 2023.2.1 3,2-8,3
Riccio | 2023.1.1 3,2-8,2
Giraffe | 2022.3.1 3,2-8,1
Flamingo | 2022.2.1 3,2-8,0

Versioni precedenti

Versione di Android Studio Versione AGP richiesta
Anguilla elettrica | 2022.1.1 3,2-7,4
Dolphin | 2021.3.1 3,2-7,3
Chipmunk | 2021.2.1 3,2-7,2
Bumblebee | 2021.1.1 3,2-7,1
Arctic Fox | 2020.3.1 3.1-7.0

Per informazioni sulle novità del plug-in Android per Gradle, consulta le note di rilascio del plug-in Android per Gradle.

Versioni minime degli strumenti per il livello API Android

Esistono versioni minime di Android Studio e AGP che supportano un livello API specifico. L'utilizzo di versioni precedenti di Android Studio o AGP rispetto a quelle richieste da targetSdk o compileSdk del progetto potrebbe causare problemi imprevisti. Ti consigliamo di utilizzare la versione di anteprima più recente di Android Studio e AGP per lavorare a progetti che hanno come target le versioni di anteprima del sistema operativo Android. Puoi installare versioni di anteprima di Android Studio insieme a una versione stabile.

Le versioni minime di Android Studio e AGP sono le seguenti:

Livello API Versione minima di Android Studio Versione minima dell'AGP
Anteprima Baklava Meerkat | 2024.3.1 8.9.0
35 Rilascio di funzionalità Koala | 2024.2.1 8.6.0
34 Riccio | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

Modifiche al sistema di versionamento (novembre 2020)

Stiamo aggiornando la numerazione delle versioni del plug-in Android per Gradle (AGP) in modo che corrisponda più da vicino allo strumento di compilazione Gradle sottostante.

Ecco le modifiche principali:

  • Ora AGP utilizzerà il versionamento semantico e le modifiche che comportano interruzioni del servizio saranno destinate alle release principali.

  • Verrà rilasciata una versione principale di AGP all'anno, in linea con la versione principale di Gradle.

  • La release successiva ad AGP 4.2 sarà la versione 7.0 e richiederà un upgrade alla versione 7.x di Gradle. Ogni release principale di AGP richiede un upgrade della versione principale nello strumento Gradle sottostante.

  • Le API verranno ritirate con circa un anno di anticipo, con la funzionalità di sostituzione resa disponibile contemporaneamente. Le API ritirate verranno rimosse circa un anno dopo durante il successivo update sostanziale.

Compatibilità

Il livello API massimo supportato dal plug-in Gradle per Android 8.6 è il livello API 34. Ecco altre informazioni sulla compatibilità:

Versione minima Versione predefinita Note
"Gradle" 8.9 8.9 "Per scoprire di più, consulta la sezione Aggiornare Gradle."
Strumenti di compilazione SDK 34.0.0 34.0.0 Installa o configura gli strumenti di compilazione dell'SDK.
NDK N/D 27.0.12077973 "Installa o configura una versione diversa del NDK."
JDK 17 17 "Per saperne di più, consulta la sezione sull'impostazione della versione JDK."

Modifica del comportamento di lint

A partire dal plug-in Android per Gradle 8.7.0-alpha08, se è presente un LintError quando viene eseguito lint utilizzando Gradle, l'attività di analisi di lint genera un'eccezione. Questa modifica impedisce che errori rari vengano memorizzati nella cache di compilazione.

Purtroppo, questa modifica interrompe le build per i progetti con istanze LintError genuine nei file di riferimento di lint. Il messaggio di errore contiene informazioni su quali controlli lint stanno causando il problema. In alcuni casi, aggiornare la dipendenza della libreria corrispondente potrebbe risolvere il problema. In caso contrario, puoi disattivare il controllo lint problematico finché l'autore della libreria non lo corregge.

Problemi risolti

Plug-in Android per Gradle 8.7.0

Problemi risolti
Plug-in Android per Gradle
L'AGP deve dichiarare di supportare l'API 35 che sta per essere rilasciata
AGP 8.5: vengono eseguite molte più attività "mergeDebugResources", rallentando le build
Imposta ndk 27 come NDK predefinito in AGP.
L'AGP deve dichiarare di supportare l'API 35 che sta per essere rilasciata
L'AGP deve dichiarare di supportare l'API 35 che sta per essere rilasciata
Esecuzione di Android lint non riuscita con NoSuchFileException
BuildType#initWith copia il blocco di post-elaborazione, ma la configurazione di ProGuard non viene applicata
Impossibile eseguire l'unione per i tag foregroundServiceType
Esecuzione di Android lint non riuscita con NoSuchFileException
Lint
Lint dovrebbe verificare la presenza di oggetti non validi utilizzati come ViewGroup
"android:host mancante" per gli URI con host null
Incompatibilità di KtAnalysisSessionProvider con i controlli lint introdotti in 8.7.0-alpha04
"Falso positivo" WrongConstant quando si utilizza PackageManager.ResolveInfoFlags.of con Kotlin

Plug-in Android per Gradle 8.7.1

Problemi risolti
Plug-in Android per Gradle
I documenti agp hanno molti TBD
Lint
AGP 8.6.1: Regressione - Errore di lint WrongConstant quando si utilizza [Int].toLong() all'interno di un @LongDef in Kotlin
Errore lint "È necessario specificare almeno un host" durante l'impostazione dello schema di filtro intent http o https

Plug-in Android per Gradle 8.7.2

Problemi risolti
Lint
AGP 8.7.0 - Falso positivo di Lint per RestrictedApi su NavOptionsBuilder.popUpTo
Shrinker (R8)
[R8 8.6.27] Implementazione del metodo sostituita con "throw null"
I file ProGuard Android predefiniti generano un avviso se utilizzati con la versione corrente di R8
MissingStartupProfileItemsDiagnostic arresta in modo anomalo il client Gradle con un errore di esaurimento della memoria se il messaggio è troppo grande

Plug-in Android per Gradle 8.7.3

Problemi risolti
Lint
Molti avvisi relativi ai metodi dell'API di analisi mancanti durante l'esecuzione di lint
Controllo lint falso positivo: android.permission.SCHEDULE_EXACT_ALARM è concesso solo alle app di sistema