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 per Gradle 8.4 è il livello API 34. Ecco altre informazioni sulla compatibilità:

Versione minima Versione predefinita Note
Gradle 8.6 8.6 Per saperne di più, consulta la sezione Aggiornare Gradle.
Strumenti di build dell'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 dell'NDK.
JDK 17 17 Per saperne di più, consulta la sezione Impostare la versione del JDK.

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

Release di patch

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

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

Aggiornamento della 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 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 Aiuto > 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 di pull di GitHub in the IDE, ti consigliamo vivamente di revocare tutti i token GitHub utilizzati da the plugin. 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 Integrazione IDE JetBrains token.
  • Per revocare l'accesso per i PAT, vai a Token di accesso personali ed elimina il token rilasciato 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 l'inconveniente e invitiamo tutti gli utenti ad aggiornare immediatamente per proteggere il codice e i dati.

Questo aggiornamento secondario include anche queste correzioni di bug.

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

Questo aggiornamento secondario include queste correzioni di bug.

Le classi di libreria vengono ridotte

A partire dal plug-in Android per Gradle 8.4, se un progetto di libreria Android viene ridotto, le classi di 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 ridotte. Potresti dover modificare le regole di conservazione della libreria nel caso in cui manchino classi nell'APK.

Se stai creando e pubblicando un AAR, i JAR locali da cui dipende la libreria verranno inclusi non ridotti 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 gradle.properties file e segnala un bug. Le versioni future di AGP rimuoveranno questo flag.

Problemi risolti

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

Plug-in Android per Gradle 8.4.1

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

Plug-in Android per Gradle 8.4.0

Problemi risolti
Plug-in Android per Gradle
Migliora il messaggio di errore che spiega perché l'opzione `--release` non può essere utilizzata per JavaCompile
Disattiva la memorizzazione nella cache di MergeSourceSetFolders utilizzando @DoNotCacheByDefault
Impossibile impostare la versione di JaCoCo in AGP 8.2.0
DynamicFeatureBuildType non ha isDebuggable
Le classi di 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 di progetto java-platform
ExtractAarTransform crea classi.jar non riproducibili per gli AAR che non hanno classi.jar
Consenti di configurare sourceInformation da ComposeOptions
Impossibile trovare il campo: sdk_runtime nel messaggio android.bundle.DeviceSpec
Supporto per compileOnlyApi
R8 non riesce a eseguire un modulo di libreria quando l'elaborazione delle risorse è disattivata
Aggiungi la possibilità di modificare il nome dell'artefatto durante la trasformazione
L'aggiunta dell'output dell'attività come srcDir di sourceSets.androidMain.resources non crea dipendenze di attività
AndroidPluginVersion.toString() non ha gli zeri iniziali
Artifacts.add(FileSystemLocation) dovrebbe essere più restrittivo.
AGP 8.3.0-alpha11 produce un APK di release che si arresta 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 per l'upgrade di AGP 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 Compose non riesce a risolvere le classi dalla dipendenza transitiva
AGP 8.3 interrompe l'attività zipApksFor
Artefatti AndroidX Desktop inclusi nel pacchetto APK Android
Lint
GradleModelMocker del framework di test di Lint non consente di impostare la versione della libreria
Lint K2 UAST: UCallableReferenceExpression segnala un qualifierType errato
Falso positivo di Lint con useK2Uast=true con funzioni sovraccariche
[BuildTool/Lint] Proprietà del costruttore ChecksSdkIntAtLeast
Integrazione di Lint
Lint non riesce a disambiguare una dipendenza KMP