我正试图在第一步构建一个针对linuxX64的Kotlin多平台命令行应用程序。因此,我想构建一个基于Ktor的客户端,该客户端用于公共模块。
在这里,我非常简单的设置:
版本概述
build.gradle.kts
plugins {
kotlin("multiplatform") version "1.3.31"
}
repositories {
mavenCentral()
maven { url = uri("https://kotlin.bintray.com/ktor") }
}
kotlin {
linuxX64("linux") {
binaries {
executable()
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation(kotlin("stdlib-common"))
api("io.ktor:ktor-client-core:1.1.5")
}
}
val linuxMain by getting {
dependsOn(commonMain)
dependencies {
api("io.ktor:ktor-client-curl:1.1.5")
}
}
}
}src/linuxMain/kotlin/Main.kt
fun main(){
val client = MyClient()
client.execute()
}src/commonMain/kotlin/MyClient.kt
import io.ktor.client.*
class MyClient {
private val client = HttpClient()
fun execute() {
//do something with Ktor client
}
}在构建项目时,会遇到以下生成问题:
11:15:21: Executing task 'build'...
> Configure project :
Kotlin Multiplatform Projects are an experimental feature.
> Task :wrapper
BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed
> Configure project :
Kotlin Multiplatform Projects are an experimental feature.
> Task :compileKotlinLinux FAILED
e: .../src/commonMain/kotlin/MyClient.kt: (1, 8): Unresolved reference: io
e: .../src/commonMain/kotlin/MyClient.kt: (5, 26): Unresolved reference: HttpClient我是Kotlin原住民/Mutliplatform和Ktor的新手。所以请原谅我如果我的设置是错的..。
发布于 2019-05-11 10:40:15
向settings.gradle.kts添加enableFeaturePreview("GRADLE_METADATA")解决了构建问题。我刚刚成功地使用linuxX64二进制文件调用了ktor-client-curl :-)
https://stackoverflow.com/questions/56089071
复制相似问题