I recently updated my project to Compose Multiplatform 1.9.0-beta03
and Material3 1.9.0-beta03
. After the update, I can no longer access:
CircularWavyProgressIndicator
ButtonDefaults.MediumContainerHeight
These used to work fine before the upgrade.
Here’s my setup:
Compose Multiplatform plugin: 1.9.0-beta03
Material 3: 1.9.0-beta03
Kotlin: 2.2.10
AGP: 8.12.1
Other relevant dependencies: navigation-compose 2.9.0-beta05, adaptive 1.1.2, koin 4.1.0, etc.
I’ve attached my libs.versions.toml
and build.gradle.kts
files for reference.
libs.versions.toml
[versions]
adaptive = "1.1.2"
agp = "8.12.1"
android-compileSdk = "35"
android-minSdk = "24"
android-targetSdk = "35"
androidx-activity = "1.10.1"
androidx-lifecycle = "2.9.2"
composeHotReload = "1.0.0-beta05"
composeMultiplatformPlugin = "1.9.0-beta03"
grpcOkhttp = "1.75.0"
kotlin = "2.2.10"
kotlinx-coroutines = "1.10.2"
compottie = "2.0.0-rc04"
navigationCompose = "2.9.0-beta05"
kotlinSerializationJson = "1.9.0"
koinBom = "4.1.0"
kmpGrpc = "1.1.0"
jetbrainsKotlinJvm = "2.2.10"
ktor = "3.2.3"
logback = "1.5.18"
material3 = "1.9.0-alpha04"
[libraries]
adaptive = { module = "org.jetbrains.compose.material3.adaptive:adaptive", version.ref = "adaptive" }
compottie = { module = "io.github.alexzhirkevich:compottie", version.ref = "compottie" }
grpc-okhttp = { module = "io.grpc:grpc-okhttp", version.ref = "grpcOkhttp" }
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" }
androidx-lifecycle-viewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel", version.ref = "androidx-lifecycle" }
androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
kotlinx-coroutinesSwing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinSerializationJson" }
navigation-compose = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "navigationCompose" }
material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "material3" }
koin-bom = { module = "io.insert-koin:koin-bom", version.ref = "koinBom" }
koin-core = { module = "io.insert-koin:koin-core" }
koin-core-coroutines = { module = "io.insert-koin:koin-core-coroutines" }
koin-compose = { module = "io.insert-koin:koin-compose" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel" }
koin-compose-viewmodel-navigation = { module = "io.insert-koin:koin-compose-viewmodel-navigation" }
logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
ktor-serverCore = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" }
ktor-serverNetty = { module = "io.ktor:ktor-server-netty-jvm", version.ref = "ktor" }
ktor-serverTestHost = { module = "io.ktor:ktor-server-test-host-jvm", version.ref = "ktor" }
[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
androidLibrary = { id = "com.android.library", version.ref = "agp" }
composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload" }
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatformPlugin" }
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
kmpGrpcPlugin = { id = "io.github.timortel.kmpgrpc.plugin", version.ref = "kmpGrpc" }
jetbrainsKotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "jetbrainsKotlinJvm" }
protobuf = { id = "com.google.protobuf", version = "0.9.5" }
ktor = { id = "io.ktor.plugin", version.ref = "ktor" }
build.gradle.kts
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
// Desktop and WASM imports commented out
//import org.jetbrains.compose.desktop.application.dsl.TargetFormat
//import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
//import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidApplication)
alias(libs.plugins.composeMultiplatform)
alias(libs.plugins.composeCompiler)
alias(libs.plugins.composeHotReload)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.kmpGrpcPlugin)
}
kotlin {
applyDefaultHierarchyTemplate()
androidTarget {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
jvmTarget.set(JvmTarget.JVM_21)
}
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
isStatic = true
}
}
// Desktop target commented out
//jvm("desktop")
// WASM target commented out
/*
@OptIn(ExperimentalWasmDsl::class)
wasmJs {
outputModuleName.set("composeApp")
browser {
val rootDirPath = project.rootDir.path
val projectDirPath = project.projectDir.path
commonWebpackConfig {
outputFileName = "composeApp.js"
devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply {
static = (static ?: mutableListOf()).apply {
// Serve sources to debug inside browser
add(rootDirPath)
add(projectDirPath)
}
}
}
}
binaries.executable()
}
*/
sourceSets {
// Desktop sourceSet commented out
//val desktopMain by getting
androidMain.dependencies {
implementation(compose.preview)
implementation(libs.koin.core.coroutines)
implementation(libs.androidx.activity.compose)
implementation(libs.grpc.okhttp)
}
commonMain.dependencies {
implementation(libs.compottie)
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(libs.adaptive)
implementation(compose.materialIconsExtended)
implementation(compose.ui)
implementation(libs.kotlinx.serialization.json)
implementation(libs.navigation.compose)
implementation(libs.material3)
implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview)
implementation(libs.androidx.lifecycle.viewmodel)
implementation(libs.androidx.lifecycle.runtimeCompose)
implementation(project.dependencies.platform(libs.koin.bom))
implementation(libs.koin.core)
implementation(libs.koin.compose)
implementation(libs.koin.compose.viewmodel)
implementation(libs.koin.compose.viewmodel.navigation)
api(libs.kotlinx.coroutines.core)
}
commonTest.dependencies {
implementation(libs.kotlin.test)
}
// Desktop dependencies commented out
/*
desktopMain.dependencies {
implementation(compose.desktop.currentOs)
implementation(libs.kotlinx.coroutinesSwing)
}
*/
}
}
android {
namespace = "abc.abc.abc"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
applicationId = "abc.abc.abc"
minSdk = libs.versions.android.minSdk.get().toInt()
targetSdk = libs.versions.android.targetSdk.get().toInt()
versionCode = 1
versionName = "1.0"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
}
dependencies {
debugImplementation(compose.uiTooling)
}
// Desktop compose configuration commented out
/*
compose.desktop {
application {
mainClass = "abc.abc.abc.MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "abc.abc.abc"
packageVersion = "1.0.0"
}
}
}
*/
kmpGrpc {
common()
android()
native()
// Desktop and JS targets commented out
//jvm()
//js()
includeWellKnownTypes = true
protoSourceFolders = project.files("../../protos")
}
Has anyone else run into this issue? Were these APIs removed/renamed in the new beta, or am I missing an additional dependency/import?
Yes, these were removed in the beta, see the changelog.
All public APIs tagged with
ExperimentalMaterial3ExpressiveApi
orExperimentalMaterial3ComponentOverrideApi
have been removed, see Google Jetpack changelog. Please use the previous Material3 alpha version explicitly to continue enjoying these features:implementation("org.jetbrains.compose.material3:material3:1.9.0-alpha04")