Configurare il plug-in Gradle del compilatore Compose

Gli utenti di Gradle possono utilizzare il plug-in Gradle del compilatore Compose per semplificare il setup e la configurazione di Compose.

Configura con i cataloghi delle versioni Gradle

Le istruzioni riportate di seguito descrivono come configurare il plug-in Gradle del compilatore Compose:

  1. Nel file libs.versions.toml, rimuovi qualsiasi riferimento al compilatore Compose.
  2. Nella sezione dei plug-in, aggiungi la nuova dipendenza riportata di seguito.
[versions]
kotlin = "2.0.0"

[plugins]
org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

// Add this line
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
  1. Nel file build.gradle.kts nella radice dei progetti, aggiungi il seguente snippet alla sezione dei plug-in.
plugins {
   // Existing plugins
   alias(libs.plugins.compose.compiler) apply false
}
  1. In ogni modulo che utilizza Compose, applica il plug-in nel seguente modo.
plugins {
   // Existing plugins
   alias(libs.plugins.compose.compiler)
}

Se utilizzi il setup predefinito, ora dovresti riuscire a compilare ed eseguire la build della tua app. Se hai configurato opzioni personalizzate nel compilatore Compose, consulta la sezione seguente.

Configura il compilatore Compose senza cataloghi delle versioni Gradle

Aggiungi il plug-in seguente ai file build.gradle.kts associati ai moduli in cui utilizzi Compose:

plugins {
    id("org.jetbrains.kotlin.plugin.compose") version "2.0.0" // this version matches your Kotlin version
}

Potrebbe inoltre essere necessario aggiungere questo classpath al file build.gradle.kts del progetto di primo livello:

buildscript {
    dependencies {
        classpath("org.jetbrains.kotlin.plugin.compose:org.jetbrains.kotlin.plugin.compose.gradle.plugin:2.0.0")
    }
}

Opzioni di configurazione con il plug-in Gradle del compilatore Compose

Per configurare il compilatore Compose utilizzando il plug-in Gradle, aggiungi il blocco composeCompiler al file build.gradle.kts del modulo al primo livello.

android {  }

composeCompiler {
    reportsDestination = layout.buildDirectory.dir("compose_compiler")
    stabilityConfigurationFile = rootProject.layout.projectDirectory.file("stability_config.conf")
}

Per l'elenco completo delle opzioni disponibili, consulta la documentazione.

Configurare le dipendenze di Compose

Aggiungi la seguente definizione al file build.gradle dell'app:

Groovy

android {
    buildFeatures {
        compose true
    }
}

Kotlin

android {
    buildFeatures {
        compose = true
    }
}

L'impostazione del flag compose su true all'interno del blocco BuildFeatures di Android attiva la funzionalità Compose in Android Studio.

Infine, aggiungi la BoM di Compose e il sottoinsieme di dipendenze della libreria Compose di cui hai bisogno alle tue dipendenze dal seguente blocco:

Groovy

dependencies {

    def composeBom = platform('androidx.compose:compose-bom:2026.01.01')
    implementation composeBom
    androidTestImplementation composeBom

    // Choose one of the following:
    // Material Design 3
    implementation 'androidx.compose.material3:material3'
    // or skip Material Design and build directly on top of foundational components
    implementation 'androidx.compose.foundation:foundation'
    // or only import the main APIs for the underlying toolkit systems,
    // such as input and measurement/layout
    implementation 'androidx.compose.ui:ui'

    // Android Studio Preview support
    implementation 'androidx.compose.ui:ui-tooling-preview'
    debugImplementation 'androidx.compose.ui:ui-tooling'

    // UI Tests
    androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
    debugImplementation 'androidx.compose.ui:ui-test-manifest'

    // Optional - Add window size utils
    implementation 'androidx.compose.material3.adaptive:adaptive'

    // Optional - Integration with activities
    implementation 'androidx.activity:activity-compose:1.11.0'
    // Optional - Integration with ViewModels
    implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.8.5'
    // Optional - Integration with LiveData
    implementation 'androidx.compose.runtime:runtime-livedata'
    // Optional - Integration with RxJava
    implementation 'androidx.compose.runtime:runtime-rxjava2'

}

Kotlin

dependencies {

    val composeBom = platform("androidx.compose:compose-bom:2026.01.01")
    implementation(composeBom)
    androidTestImplementation(composeBom)

    // Choose one of the following:
    // Material Design 3
    implementation("androidx.compose.material3:material3")
    // or skip Material Design and build directly on top of foundational components
    implementation("androidx.compose.foundation:foundation")
    // or only import the main APIs for the underlying toolkit systems,
    // such as input and measurement/layout
    implementation("androidx.compose.ui:ui")

    // Android Studio Preview support
    implementation("androidx.compose.ui:ui-tooling-preview")
    debugImplementation("androidx.compose.ui:ui-tooling")

    // UI Tests
    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
    debugImplementation("androidx.compose.ui:ui-test-manifest")

    // Optional - Add window size utils
    implementation("androidx.compose.material3.adaptive:adaptive")

    // Optional - Integration with activities
    implementation("androidx.activity:activity-compose:1.11.0")
    // Optional - Integration with ViewModels
    implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.5")
    // Optional - Integration with LiveData
    implementation("androidx.compose.runtime:runtime-livedata")
    // Optional - Integration with RxJava
    implementation("androidx.compose.runtime:runtime-rxjava2")

}