编译器无法解析 io.ktor.client.features.logging 中的 类
Compiler cannot resolve classes in io.ktor.client.features.logging
我正在尝试为 Android 应用程序中的 Ktor
http 请求添加日志记录。根据 docs 我必须添加 gradle 依赖项
implementation "io.ktor:ktor-client-logging:$ktor_version"
然后只使用这个片段
val client = HttpClient() {
install(Logging) {
logger = Logger.DEFAULT
level = LogLevel.HEADERS
}
}
问题是编译器 "ignores" 包 'io.ktor.client.features.logging' 添加为依赖项。奇怪的是 JsonFeature(作为类似的依赖项添加)工作得很好。
install(JsonFeature) { // perfectly works
...
}
install(Logging) { // unresolved reference
...
}
我已经检查了 gradle 添加到项目中的 .jar
文件,它包含所有预期的 类,我可以打开它们并查看源代码,但神奇的是不能'在我的应用程序中使用。经过数小时的研究,我猜它可能与 gradle 元数据有某种关系,或者日志记录功能是多平台的,并且需要一些额外的 gradle 配置,但不幸的是我不是 gradle 专家。
我尝试将 enableFeaturePreview("GRADLE_METADATA")
添加到 settings.gradle
,但没有效果。甚至尝试将“-jvm”添加到依赖项中。
implementation "io.ktor:ktor-client-logging-jvm:$ktor_version"
使用此依赖项 Android Studio 成功找到包,但编译失败并出现以下错误
More than one file was found with OS independent path 'META-INF/ktor-http.kotlin_module'
谁能解释一下如何正确配置 Ktor 记录器的依赖关系?
对于 ktor-client-logging
您必须为每个平台设置依赖项:
commonMain {
dependencies {
implementation "ch.qos.logback:logback-classic:1.2.3"
implementation "io.ktor:ktor-client-logging:$ktor_version"
}
}
androidMain {
dependencies {
implementation "io.ktor:ktor-client-logging-jvm:$ktor_version"
}
}
iosMain {
dependencies {
implementation "io.ktor:ktor-client-logging-native:$ktor_version"
}
}
至于元 META-INF/ktor-http.kotlin_module
添加到 android {}
块内的 app/build.gradle
:
android {
packagingOptions {
exclude 'META-INF/common.kotlin_module'
exclude 'META-INF/*.kotlin_module'
}
}
我正在尝试为 Android 应用程序中的 Ktor
http 请求添加日志记录。根据 docs 我必须添加 gradle 依赖项
implementation "io.ktor:ktor-client-logging:$ktor_version"
然后只使用这个片段
val client = HttpClient() {
install(Logging) {
logger = Logger.DEFAULT
level = LogLevel.HEADERS
}
}
问题是编译器 "ignores" 包 'io.ktor.client.features.logging' 添加为依赖项。奇怪的是 JsonFeature(作为类似的依赖项添加)工作得很好。
install(JsonFeature) { // perfectly works
...
}
install(Logging) { // unresolved reference
...
}
我已经检查了 gradle 添加到项目中的 .jar
文件,它包含所有预期的 类,我可以打开它们并查看源代码,但神奇的是不能'在我的应用程序中使用。经过数小时的研究,我猜它可能与 gradle 元数据有某种关系,或者日志记录功能是多平台的,并且需要一些额外的 gradle 配置,但不幸的是我不是 gradle 专家。
我尝试将 enableFeaturePreview("GRADLE_METADATA")
添加到 settings.gradle
,但没有效果。甚至尝试将“-jvm”添加到依赖项中。
implementation "io.ktor:ktor-client-logging-jvm:$ktor_version"
使用此依赖项 Android Studio 成功找到包,但编译失败并出现以下错误
More than one file was found with OS independent path 'META-INF/ktor-http.kotlin_module'
谁能解释一下如何正确配置 Ktor 记录器的依赖关系?
对于 ktor-client-logging
您必须为每个平台设置依赖项:
commonMain {
dependencies {
implementation "ch.qos.logback:logback-classic:1.2.3"
implementation "io.ktor:ktor-client-logging:$ktor_version"
}
}
androidMain {
dependencies {
implementation "io.ktor:ktor-client-logging-jvm:$ktor_version"
}
}
iosMain {
dependencies {
implementation "io.ktor:ktor-client-logging-native:$ktor_version"
}
}
至于元 META-INF/ktor-http.kotlin_module
添加到 android {}
块内的 app/build.gradle
:
android {
packagingOptions {
exclude 'META-INF/common.kotlin_module'
exclude 'META-INF/*.kotlin_module'
}
}