Plug-in Android per Gradle 7.2.0 (maggio 2022)

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

7.2.2 (agosto 2022)

Questo aggiornamento secondario corrisponde al rilascio di Android Studio Chipmunk Patch 2 e include le seguenti correzioni di bug:

  • Problema n. 232438924: la versione 7.2 di AndroidGradlePlugin interrompe l'API Transform se utilizzata insieme all'API ASM
  • Problema n. 231037948: AGP 7.2.0-rc01 :buildSrc:generatePrecompiledScriptPluginAccessors - shadow/bundletool/com/android/prefs/AndroidLocation$AndroidLocationException
7.2.1 (maggio 2022)

Questo aggiornamento secondario corrisponde al rilascio di Android Studio Chipmunk Patch 1 e include le seguenti correzioni di bug:

Per visualizzare le altre correzioni di bug incluse in questa release, consulta le note di rilascio di Android Studio Chipmunk Patch 1.

Compatibilità

Versione minima Versione predefinita Note
Gradle 7.3.3 7.3.3 Per scoprire di più, consulta la sezione Aggiornare Gradle.
Strumenti di compilazione SDK 30.0.3 30.0.3 Installa o configura gli strumenti di creazione dell'SDK.
NDK N/D 21.4.7075529 Installa o configura una versione diversa dell'NDK.
JDK 11 11 Per saperne di più, vedi Impostare la versione di JDK.

Avviso e controllo di Jetifier in Build Analyzer

Build Analyzer ora mostra un avviso se il file gradle.properties del tuo progetto include android.enableJetifier=true. Questo flag è stato introdotto in una versione precedente di Android Studio per attivare AndroidX per le librerie che non supportano AndroidX in modo nativo. Tuttavia, l'ecosistema delle librerie è passato per lo più a supportare AndroidX in modo nativo e il flag Jetifier probabilmente non è più necessario per il tuo progetto. Inoltre, il flag può comportare prestazioni di compilazione più lente. Se visualizzi questo avviso, puoi eseguire un controllo in Build Analyzer per verificare se il flag può essere rimosso.

Supporto per i test fixture

A partire da Android Studio Chipmunk Beta 1, Android Studio supporta sia i test fixture Android che Java. Per ulteriori informazioni sulla funzionalità dei test fixture e su come utilizzarla in un progetto Java, consulta la guida di Gradle sull'utilizzo dei test fixture{:.external}.

Per attivare i test fixture nel modulo della libreria Android, aggiungi quanto segue al file build.gradle a livello di libreria:

android {
  testFixtures {
    enable true
    // enable testFixtures's android resources (disabled by default)
    // androidResources true
  }
}

Per impostazione predefinita, la pubblicazione della libreria comporta anche la pubblicazione dell'AAR dei test fixture con la libreria principale. Il file di metadati del modulo Gradle conterrà informazioni per Gradle per poter utilizzare l'artefatto corretto quando viene richiesto il componente testFixtures.

Per disattivare la pubblicazione dell'AAR dei test fixture di una libreria nella variante di release, aggiungi quanto segue al file build.gradle a livello di libreria:

afterEvaluate {
  components.release.withVariantsFromConfiguration(
    configurations.releaseTestFixturesVariantReleaseApiPublication) { skip() }
  components.release.withVariantsFromConfiguration(
    configurations.releaseTestFixturesVariantReleaseRuntimePublication) { skip() }
}

Per utilizzare l'AAR dei test di una libreria Android pubblicata, puoi utilizzare il metodo helper testFixtures() di Gradle.

dependencies {
  testImplementation testFixtures('com.example.company:publishedLib:1.0')
}

Per impostazione predefinita, lint analizzerà le origini dei test fixture. Puoi configurare lint per ignorare le origini dei test fixture nel seguente modo:

android {
  lint {
    ignoreTestFixturesSources true
  }
}

Radici dei contenuti duplicate non supportate

A partire da AGP 7.2, non puoi più condividere la stessa directory di origine in più set di origini. Ad esempio, non puoi utilizzare le stesse origini di test sia per i test unitari sia per i test di strumentazione. Per saperne di più, consulta Modificare le configurazioni predefinite dei set di origini.