Plug-in Android per Gradle 8.1.0 (luglio 2023)

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

Compatibilità

Versione minima Versione predefinita Notes
Gradle con Android 8.0 con Android 8.0 Per scoprire di più, consulta la pagina sull'aggiornamento di Gradle.
Strumenti di creazione dell'SDK 33.0.1 33.0.1 Installa o configura gli strumenti di creazione dell'SDK.
NDK N/A 25.1.8937393 Installa o configura una versione diversa dell'NDK.
JDK 17 17 Per ulteriori informazioni, vedi Impostazione della versione JDK.

Kotlin DSL è l'impostazione predefinita per la configurazione della build

I nuovi progetti ora utilizzano Kotlin DSL (build.gradle.kts) per impostazione predefinita per la configurazione della build. Questo offre un'esperienza di modifica migliore rispetto a Groovy DSL (build.gradle) con evidenziazione della sintassi, completamento del codice e navigazione verso le dichiarazioni. Tieni presente che se utilizzi AGP 8.1 e Kotlin DSL per la configurazione della build, devi usare Gradle 8.1 per un'esperienza ottimale. Per ulteriori informazioni, consulta la guida alla migrazione a Kotlin DSL.

Supporto automatico della lingua in base all'app

A partire da Android Studio Giraffe Canary 7 e AGP 8.1.0-alpha07, puoi configurare la tua app per supportare automaticamente le preferenze linguistiche per ogni app. In base alle risorse del progetto, il plug-in Android Gradle genera il file LocaleConfig a cui aggiunge un riferimento nel file manifest finale, così non dovrai più farlo manualmente. AGP utilizza le risorse nelle cartelle res dei moduli dell'app e le eventuali dipendenze dei moduli delle librerie per determinare le impostazioni internazionali da includere nel file LocaleConfig.

Tieni presente che la funzionalità linguistica automatica per ogni app supporta le app con Android 13 (livello API 33) o versioni successive. Per utilizzare la funzionalità, devi impostare compileSdkVersion su 33 o un valore superiore. Per configurare le preferenze linguistiche per app per le versioni precedenti di Android, devi comunque utilizzare le API e i selettori lingua in-app.

Per attivare il supporto automatico delle lingue per app, specifica un'impostazione internazionale predefinita:

  1. Nella cartella res del modulo dell'app, crea un nuovo file denominato resources.properties.
  2. Nel file resources.properties, imposta le impostazioni internazionali predefinite con l'etichetta unqualifiedResLocale. Per creare i nomi delle impostazioni internazionali, combina il codice lingua con lo script facoltativo e i codici regione, separandoli con un trattino:

    Ad esempio, se la tua lingua predefinita è Inglese americano:

        unqualifiedResLocale=en-US
        

AGP aggiunge queste impostazioni internazionali predefinite ed eventuali impostazioni internazionali alternative che hai specificato, utilizzando le directory values-* nella cartella res, al file LocaleConfig generato automaticamente.

Il supporto automatico della lingua in ogni app è disattivato per impostazione predefinita. Per attivare la funzionalità, utilizza l'impostazione generateLocaleConfig nel blocco androidResources {} del file build.gradle.kts a livello di modulo (file build.gradle se utilizzi Groovy):

Kotlin

android {
  androidResources {
    generateLocaleConfig = true
  }
}

trendy

android {
  androidResources {
    generateLocaleConfig true
  }
}

Lint Android contiene bytecode che ha come target JVM 17

A partire da AGP 8.1.0-alpha04, il Lint di Android contiene bytecode che ha come target JVM 17. Se scrivi controlli lint personalizzati, devi compilare con JDK 17 o versioni successive e specificare jvmTarget = '17' nelle opzioni del compilatore Kotlin.

Per scoprire di più sullo strumento lint, consulta Migliorare il codice con i controlli lint.

Impostazione di compressione della libreria nativa spostata in DSL

A partire da AGP 8.1.0-alpha10, riceverai un avviso se non configuri la compressione delle librerie native utilizzando la DSL anziché il manifest. Le seguenti indicazioni spiegano come aggiornare la configurazione per utilizzare l'interfaccia DSL. Per ricevere assistenza per questi aggiornamenti, utilizza l'Assistente per l'upgrade AGP (Strumenti > Assistente per l'upgrade AGP).

Per utilizzare le librerie native non compresse, rimuovi l'attributo android::extractNativeLibs dal manifest e aggiungi il seguente codice al file build.gradle.kts a livello di modulo (file build.gradle se usi Groovy):

Kotlin

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging = false
    }
  }
}

trendy

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging false
    }
  }
}

Flag di build sperimentali

Questi sono flag sperimentali disponibili in AGP 8.1 per configurare la tua build.

Segnala Aggiunto in Valore predefinito Notes
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes AGP 8.0 false Se abiliti questa opzione senza specificare configurazioni di firma, AGP utilizzerà la configurazione predefinita della firma di debug durante l'esecuzione di una build profilabile o di cui è possibile eseguire il debug. Questo flag è disabilitato per impostazione predefinita per incoraggiare gli autori delle build a dichiarare configurazioni di firma di profilazione specifiche.
android.experimental.library.desugarAndroidTest AGP 8.0 false Questo flag consente agli sviluppatori di librerie di attivare il deprovisioning della libreria di base per gli APK di test senza influire sull'AAR prodotto, ad esempio tramite l'analisi tramite lint. Prevediamo di supportare questo comportamento nell'API Variant.
android.experimental.testOptions.managedDevices.customDevice AGP 8.0 false Se abilitato, i dispositivi gestiti da Gradle consentono un tipo di dispositivo personalizzato definito dall'utente che può essere fornito da un plug-in. Questo flag deve essere abilitato se vuoi utilizzare il plug-in Firebase Test Lab.
android.lint.printStackTrace AGP 8.0 false Se questa opzione è abilitata, Android lint stampa un'analisi dello stack in caso di arresto anomalo. Questo flag ha le stesse capacità della variabile di ambiente LINT_PRINT_STACKTRACE.
android.experimental.testOptions.managedDevices.maxConcurrentDevices AGP 8.0 Nessun valore Specifica il numero massimo di dispositivi gestiti Gradle (AVD) simultanei da attivare in qualsiasi momento. Se il valore è 0 o negativo, non è previsto un numero massimo di dispositivi.
android.experimental.testOptions.installApkTimeout AGP 8.0 Nessun valore La durata del timeout in secondi per l'installazione di un APK. Se il valore è 0 o negativo, verrà impostato su un valore predefinito da UTP.