Android Gradle Plugin 8.4.0 (aprile 2024)

Il plug-in Android per Gradle 8.4.0 è una release principale che include una serie di nuove funzionalità e miglioramenti.

Compatibilità

Il livello API massimo supportato da Android Gradle Plugin 8.4 è il livello API 34. Ecco altre informazioni sulla compatibilità:

Versione minima Versione predefinita Note
Gradle 8.6 8.6 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 creazione dell'SDK.
NDK N/D 26.1.10909125 Installa o configura una versione diversa dell'NDK.
JDK 17 17 Per saperne di più, vedi Impostare la versione di JDK.

Di seguito sono riportate le nuove funzionalità del plug-in Android per Gradle 8.4.

Release delle patch

Di seguito è riportato un elenco delle patch rilasciate in Android Studio Jellyfish e nel plug-in Android per Gradle 8.4.

Android Studio Jellyfish | Patch 2 di 2023.3.1 e AGP 8.4.2 (giugno 2024)

Importante aggiornamento della sicurezza: una vulnerabilità di sicurezza nel plug-in GitHub disponibile in Android Studio Iguana | 2023.2.1 e versioni successive potrebbe esporre i token di accesso a terze parti non autorizzate.

La correzione: Jetbrains ha risolto il problema nei prodotti della piattaforma IntelliJ, e la correzione è ora disponibile in Android Studio Jellyfish | 2023.3.1 Patch 2 (2023.3.1.20).

Se hai già una build di Android Studio sul canale stabile, puoi ottenere l'aggiornamento facendo clic su Guida > Controlla aggiornamenti (o Android Studio > Controlla aggiornamenti su macOS). In caso contrario, scarica l'ultima build stabile.

Inoltre, se hai utilizzato attivamente la funzionalità di richiesta pull di GitHub nell'IDE, ti consigliamo vivamente di revocare tutti i token GitHub utilizzati dal plug-in. Poiché il plug-in può utilizzare l'integrazione OAuth o i token di accesso personali (PAT), controlla entrambi e revoca l'accesso se necessario:

  • Per revocare l'accesso per l'integrazione OAuth, vai a Applicazioni > App OAuth autorizzate e revoca l'accesso per il token Integrazione IDE JetBrains.
  • Per revocare l'accesso per i token di accesso personale, vai a Token di accesso personale ed elimina il token emesso per il plug-in GitHub. Il nome predefinito del token è Plug-in di integrazione GitHub di IntelliJ IDEA, ma potresti utilizzare un nome personalizzato.

Dopo aver revocato l'accesso per i token, devi configurare di nuovo il plug-in per ripristinare tutte le funzionalità del plug-in, incluse le operazioni Git.

Ci scusiamo per gli eventuali disagi e invitiamo tutti gli utenti a eseguire immediatamente l'aggiornamento per proteggere il proprio codice e i propri dati.

Questo aggiornamento minore include anche queste correzioni di bug.

Android Studio Jellyfish | 2023.3.1 Patch 1 e AGP 8.4.1 (maggio 2024)

Questo aggiornamento minore include queste correzioni di bug.

Le classi della libreria sono compresse

A partire dal plug-in Android per Gradle 8.4, se un progetto di libreria Android viene ridotto, le classi del programma ridotte verranno pubblicate per la pubblicazione tra progetti. Ciò significa che se un'app dipende dalla versione ridotta dei sottoprogetti della libreria Android, l'APK includerà le classi della libreria Android ridotta. Potresti dover modificare le regole di conservazione della libreria nel caso in cui nell'APK manchino delle classi.

Se crei e pubblichi un AAR, i file JAR locali da cui dipende la tua libreria saranno inclusi senza riduzione nell'AAR, il che significa che code shrinker non verrà eseguito.

Per ripristinare il comportamento precedente, imposta android.disableMinifyLocalDependenciesForLibraries nel file gradle.properties e segnala un bug. Le versioni future di AGP rimuoveranno questo flag.

Problemi risolti

Plug-in Android per Gradle 8.4.0

Problemi risolti
Plug-in Android per Gradle
Migliora il messaggio di errore che spiega perché non è possibile utilizzare l'opzione `--release` per JavaCompile
Disabilita la memorizzazione nella cache di MergeSourceSetFolders utilizzando @DoNotCacheByDefault
Impossibile impostare la versione di JaCoCo in AGP 8.2.0
DynamicFeatureBuildType is missing isDebuggable
Le classi della libreria ridotte non vengono pubblicate correttamente per l'utilizzo tra progetti
Fornisci l'API Variant#sources che esclude i file generati
I modelli AGP non contengono dipendenze del progetto java-platform
ExtractAarTransform crea un file classes.jar non riproducibile per gli AAR che non hanno un file classes.jar
Consenti la configurazione di sourceInformation da ComposeOptions
Impossibile trovare il campo: sdk_runtime nel messaggio android.bundle.DeviceSpec
Supporto per compileOnlyApi
R8 non riesce a elaborare un modulo della libreria quando l'elaborazione delle risorse è disattivata
Aggiungere la possibilità di modificare il nome dell'artefatto durante la trasformazione
L'aggiunta dell'output dell'attività a srcDir di sourceSets.androidMain.resources non crea dipendenze dell'attività
AndroidPluginVersion.toString() non include gli zeri iniziali
Artifacts.add(FileSystemLocation) deve essere più restrittivo.
AGP 8.3.0-alpha11 produce un APK di rilascio che si arresta in modo anomalo all'avvio con android.content.res.Resources$NotFoundException
L'attività di installazione del plug-in Android per Gradle 8.2.0 non riesce nel progetto che utilizza funzionalità dinamiche
La compilazione AIDL non riesce con IndexOutOfBoundsException: Index 0 out of bounds for length 0
Problema di gestione degli input incrementali di MergeJavaResourcesTask
AGP 8.3.0-alpha02 dipende da librerie con vulnerabilità di sicurezza note
Il modello di attività selezionato richiede un progetto con dipendenze androidx.*
L'assistente all'upgrade di AGP rimuove erroneamente consumerProguardFiles dal modulo
L'assistente per l'upgrade AGP si carica all'infinito
SourceDirectories#static non deve dipendere dall'attività GenerateBuildConfig
Impossibile risolvere le classi dall'anteprima di Compose dalla dipendenza transitiva
AGP 8.3 interrompe l'attività zipApksFor
Artefatti AndroidX Desktop inclusi nell'APK Android
Pelucchi
GradleModelMocker del framework di test Lint non consente di impostare la versione della libreria
Lint K2 UAST: UCallableReferenceExpression segnala un qualifierType errato
Lint false positive with useK2Uast=true with overloaded functions
[BuildTool/Lint] ChecksSdkIntAtLeast constructor property
Integrazione di Lint
Lint non è in grado di disambiguare una dipendenza KMP

Plug-in Android per Gradle 8.4.1

Problemi risolti
Plug-in Android per Gradle
Consenti di eliminare un avviso relativo alla rimozione del supporto per il targeting di Java 8 in JDK 21
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
Errore di conversione del formato della nuova versione R8 dopo l'offuscamento
Le build intermedie potrebbero non avere contenuti sintetici globali completi per gli stub

Plug-in Android per Gradle 8.4.2

Problemi risolti
Plug-in Android per Gradle
AGP 8.4 sembra interrompere i download di GMD su CI