【发布时间】:2019-10-22 08:50:41
【问题描述】:
我正在尝试在 Android 应用程序中为 Ktor http 请求添加日志记录。根据docs我必须添加gradle依赖
implementation "io.ktor:ktor-client-logging:$ktor_version"
只需使用这个 sn-p
val client = HttpClient() {
install(Logging) {
logger = Logger.DEFAULT
level = LogLevel.HEADERS
}
}
问题是编译器“忽略”作为依赖项添加的包“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 记录器的依赖关系?
【问题讨论】:
标签: android gradle logging kotlin ktor