Gradle,在撰写多平台项目中使用material3

wii*_*es3 7 gradle compose-multiplatform

我正在使用 Jetpack Compose Multiplatform Desktop 做一个项目。我对 Gradle 不太熟悉,我想在我的项目中使用 Material 3。所以,我在文件中添加了这一行build.gradle.kts

implementation("androidx.compose.material3:material3:1.0.0-alpha14")
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用以下命令将库导入 Kotlin 文件中时:

import androidx.compose.material3.*
Run Code Online (Sandbox Code Playgroud)

我有一个unresolved reference问题。

这是我的build.gradle.kts文件:

import org.jetbrains.compose.desktop.application.dsl.TargetFormat

plugins {
    kotlin("multiplatform")
    id("org.jetbrains.compose")
}

group = "com.example"
version = "1.0-SNAPSHOT"

repositories {
    google()
    mavenCentral()
    maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
}

kotlin {
    jvm {
        compilations.all {
            kotlinOptions {
                jvmTarget = "18"
                freeCompilerArgs = listOf("-opt-in=kotlin.RequiresOptIn")
            }
        }
        withJava()
    }
    sourceSets {
        val jvmMain by getting {
            dependencies {
                implementation(compose.desktop.currentOs)
                implementation("androidx.compose.material3:material3:1.0.0-alpha14")
            }
        }
        val jvmTest by getting
    }
}

compose.desktop {
    application {
        mainClass = "MainKt"
        jvmArgs += listOf("-Djava.library.path=./lib")
        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "FanControl"
            packageVersion = "1.0.0"
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

我想我应该能够使用这个库,因为发行说明表明它支持它。

Edit1:当我尝试同步时,我从 Gradle 收到此消息:

Could not resolve: androidx.compose.material3:material3:1.0.0-alpha14
Run Code Online (Sandbox Code Playgroud)

wii*_*es3 9

终于找到问题所在了,是库错了,改一下

implementation("androidx.compose.material3:material3:1.0.0-alpha14")
Run Code Online (Sandbox Code Playgroud)

implementation("org.jetbrains.compose.material3:material3-desktop:1.2.1")
Run Code Online (Sandbox Code Playgroud)

  • 为了防止使用错误的版本,您可以使用“implementation(compose.material3)” (14认同)