Plug-in Android per Gradle 8.7.0 (ottobre 2024)

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

Compatibilità

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

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

Modifica del comportamento di lint

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

Purtroppo, questa modifica interrompe le build per i progetti con istanze LintError reali nei file di base di lint. Il messaggio di errore contiene informazioni sui controlli lint che causano il problema. In alcuni casi, l'aggiornamento della dipendenza della libreria corrispondente potrebbe risolvere il problema. In caso contrario, puoi disattivare il controllo lint problematico finché l'autore della libreria non lo risolve.

Problemi risolti

Plug-in Android per Gradle 8.7.0

Problemi risolti
Plug-in Android per Gradle
AGP deve dichiarare di supportare l'API 35 in fase di rilascio
AGP 8.5: vengono eseguite molte più attività "mergeDebugResources", il che rallenta le build
Imposta NDK 27 come NDK predefinito in AGP.
AGP deve dichiarare di supportare l'API 35 in fase di rilascio
AGP deve dichiarare di supportare l'API 35 in fase di rilascio
L'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 unire i tag foregroundServiceType
L'esecuzione di Android lint non è riuscita con NoSuchFileException
Pelucchi
Lint deve verificare la presenza di oggetti non validi utilizzati come ViewGroups
"android:host is missing" per gli URI con host null
Incompatibilità di KtAnalysisSessionProvider con i controlli lint introdotti nella versione 8.7.0-alpha04
"False positive" WrongConstant quando si utilizza PackageManager.ResolveInfoFlags.of con Kotlin

Plug-in Android per Gradle 8.7.1

Problemi risolti
Plug-in Android per Gradle
agp docs have a lot of TBD
Pelucchi
AGP 8.6.1: regressione - Errore di lint WrongConstant quando si utilizza [Int].toLong() all'interno di @LongDef in Kotlin
Errore di lint "At least one host must be specified" (È necessario specificare almeno un host) durante l'impostazione dello schema di intent-filter http o https

Plug-in Android per Gradle 8.7.2

Problemi risolti
Pelucchi
AGP 8.7.0 - Lint False Positive 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 attuale di R8
MissingStartupProfileItemsDiagnostic arresta in modo anomalo il client Gradle con un errore di memoria insufficiente se il messaggio è troppo grande

Plug-in Android per Gradle 8.7.3

Problemi risolti
Pelucchi
Molti avvisi relativi al metodo API di analisi mancante durante l'esecuzione di lint
Controllo lint di falsi positivi android.permission.SCHEDULE_EXACT_ALARM concesso solo alle app di sistema