Konfigurowanie wtyczki Gradle kompilatora Compose

W przypadku Gradle użyj wtyczki Gradle do obsługi kompilatora Compose, aby skonfigurować Compose.

Konfigurowanie za pomocą katalogów wersji Gradle

Skonfiguruj wtyczkę Gradle do obsługi kompilatora Compose:

  1. W pliku libs.versions.toml usuń wszelkie odniesienia do kompilatora Compose.
  2. W sekcjach versions i plugins dodaj nową zależność:

    [versions]
    kotlin = "2.3.21"
    
    [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" }
    
  3. W pliku build.gradle.kts w katalogu głównym projektu dodaj ten kod do sekcji plugins.

    plugins {
    // Existing plugins
    alias(libs.plugins.compose.compiler) apply false
    }
    
  4. W każdym module, który korzysta z Compose, zastosuj wtyczkę:

    plugins {
    // Existing plugins
    alias(libs.plugins.compose.compiler)
    }
    

Jeśli projekt korzystał z domyślnej konfiguracji, powinien się teraz skompilować. Jeśli miał skonfigurowane opcje niestandardowe w kompilatorze Compose, wykonaj czynności opisane w następnej sekcji.

Konfigurowanie kompilatora Compose bez katalogów wersji Gradle

Dodaj wtyczkę do plików build.gradle.kts powiązanych z modułami, w których używany jest Compose:

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

Dodaj ścieżkę klasy do pliku build.gradle.kts projektu najwyższego poziomu:

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

Opcje konfiguracji we wtyczce Gradle do obsługi kompilatora Compose

Aby skonfigurować kompilator Compose za pomocą wtyczki Gradle, dodaj blok composeCompiler do pliku build.gradle.kts modułu na najwyższym poziomie:

android {  }

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

Pełną listę dostępnych opcji znajdziesz w dokumentacji.

Konfigurowanie zależności Compose

Zawsze używaj najnowszej wersji BOM Compose: 2026.08.00.

Ustaw flagę compose na true w BuildFeatures Androida, aby włączyć funkcję Compose w Android Studio.

Dodaj tę definicję do pliku build.gradle aplikacji:

Dynamiczny

android {
    buildFeatures {
        compose true
    }
}

Kotlin

android {
    buildFeatures {
        compose = true
    }
}

Dodaj BOM Compose i podzbiór zależności biblioteki Compose:

Dynamiczny

dependencies {

    def composeBom = platform('androidx.compose:compose-bom:2026.08.00')
    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.13.0'
    // Optional - Integration with ViewModels
    implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0'
    // 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.08.00")
    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.13.0")
    // Optional - Integration with ViewModels
    implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0")
    // Optional - Integration with LiveData
    implementation("androidx.compose.runtime:runtime-livedata")
    // Optional - Integration with RxJava
    implementation("androidx.compose.runtime:runtime-rxjava2")

}

Zgodność compileSdk i wtyczki Androida do obsługi Gradle

Wersje biblioteki Compose stale dostosowują się do najnowszych wersji compileSdk, aby zapewnić dostęp do najnowszych funkcji Androida. Nowsze wersje compileSdk wymagają nowszych wersji wtyczki Androida do obsługi Gradle, dlatego w przypadku nowych wersji Compose projekty muszą też korzystać z nowych wersji wtyczki Androida do obsługi Gradle. Zalecamy, aby compileSdk projektu było aktualne i zgodne z najnowszymi wersjami. compileSdk nie jest powiązany z targetSdk.

Na przykład od wersji Compose 1.12.0 projekty muszą używać compileSdk 37 i wtyczki Androida do obsługi Gradle (AGP) w wersji 9.

Aby sprawdzić, która wersja AGP jest obsługiwana w przypadku różnych poziomów interfejsu API, zapoznaj się z dokumentacją dotyczącą obsługi poziomu interfejsu API przez wtyczkę Androida do obsługi Gradle.