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 dal plug-in Android Gradle 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 compilazione dell'SDK.
NDK N/D 26.1.10909125 Installa o configura una versione diversa del NDK.
JDK 17 17 Per saperne di più, vedi Impostare la versione 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 release delle patch in Android Studio Jellyfish e nel plug-in Android Gradle 8.4.

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

Aggiornamento di sicurezza importante: 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 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 nel canale stabile, puoi ricevere l'aggiornamento facendo clic su Guida > Cerca aggiornamenti (o Android Studio > Cerca aggiornamenti su macOS). In caso contrario, scarica la build stabile più recente.

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 personale (PAT), controllali entrambi e revocali 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 del token predefinito è IntelliJ IDEA GitHub integration plugin, ma potresti utilizzare un nome personalizzato.

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

Ci scusiamo per gli eventuali disagi e invitiamo tutti gli utenti ad eseguire immediatamente l'aggiornamento per salvaguardare il codice e i dati.

Questo aggiornamento minore include anche queste correzioni di bug.

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

Questo aggiornamento minore include queste correzioni di bug.

Le classi della libreria vengono ridotte

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

Se stai creando e pubblicando un file AAR, i file JAR locali di cui dipende la tua libreria verranno inclusi non compressi nell'AAR, il che significa che il riduttore di codice non verrà eseguito su di essi.

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
Miglioramento del messaggio di errore relativo al motivo per cui non è possibile utilizzare l'opzione `--release` per JavaCompile
Disattiva la memorizzazione nella cache di MergeSourceSetFolders utilizzando @DoNotCacheByDefault
Impossibile impostare la versione JaCoCo in AGP 8.2.0
In DynamicFeatureBuildType manca isDebuggable
Le classi della libreria minimizzate non vengono pubblicate correttamente per l'utilizzo tra progetti
Fornisci l'API Variant#sources che escluda i file generati
I modelli AGP non contengono dipendenze del progetto Java-Platform
ExtractAarTransform crea file classes.jar non riproducibili per gli aar che non hanno file classes.jar
Consenti di configurare sourceInformation da ComposeOptions
Impossibile trovare il campo sdk_runtime nel messaggio android.bundle.DeviceSpec
Supporto per compileOnlyApi
R8 non riesce in un modulo della libreria quando l'elaborazione delle risorse è disattivata
Aggiunta della possibilità di modificare il nome dell'elemento durante la trasformazione
L'aggiunta dell'output dell'attività come srcDir di sourceSets.androidMain.resources non crea dipendenze dell'attività
In AndroidPluginVersion.toString() mancano gli zeri iniziali
Artifacts.add(FileSystemLocation) dovrebbe essere più restrittivo.
AGP 8.3.0-alpha11 produce un APK di release 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 di AIDL non va a buon fine con IndexOutOfBoundsException: indice 0 fuori intervallo per lunghezza 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.*
AGP Upgrade Assistant rimuove erroneamente consumerProguardFiles dal modulo
L'assistente per l'upgrade di AGP si carica all'infinito
SourceDirectories#static non deve dipendere dall'attività GenerateBuildConfig
L'anteprima di composizione non è in grado di risolvere i classi dalla dipendenza transitiva
AGP 8.3 interrompe l'attività zipApksFor
Elementi desktop AndroidX pacchettizzati nell'APK Android
Lint
GradleModelMocker del framework di test Lint non consente di impostare la versione della libreria
Lint K2 UAST: UCallableReferenceExpression segnala un tipo di qualificatore errato
Falso positivo di Lint con useK2Uast=true con funzioni sovraccaricate
[BuildTool/Lint] Proprietà del costruttore ChecksSdkIntAtLeast
Integrazione di lint
Lint non è in grado di risolvere una dipendenza KMP

Plug-in Android per Gradle 8.4.1

Problemi risolti
Plug-in Android per Gradle
Consenti di eliminare un avviso relativo al ritiro del supporto di JDK 21 per il targeting di Java 8
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
Errore di conversione del formato della nuova versione R8 dopo l'oscuramento
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 in CI