kotlin - 映射到 ktor 后调用正文时找不到类“kotlin.collections.HashMap”
问题描述
以下是引发错误的代码:
suspend fun mapDeviceToLocation(locationId: String): String {
val postDataParams: HashMap<String, String> = HashMap()
postDataParams["locationId"] = locationId
postDataParams["imei"] = "354872110157611"
return try {
val result = httpClient.post<MappedLocation> {
url(CLEANJACK_ENDPOINT + "cleanjack/rest/deviceconfig/configureDevice/")
body = postDataParams
contentType(ContentType.Application.Json)
}
result.locationName
} catch (e: ClientRequestException) {
println("error in mapDeviceToLocation: $e")
return "error in mapDeviceToLocation"
}
}
我用这段代码调用上面的函数:
@Throws(Exception::class)
fun mapToLocation(locationId: String): String = runBlocking{
return@runBlocking api.mapDeviceToLocation(locationId)
}
将 postDataParams 映射到主体时,它会引发以下异常,导致 post 调用失败并返回 null:
java.lang.ClassNotFoundException: Didn't find class "kotlin.collections.HashMap" on path: DexPathList[[zip file "/data/app/com.example.cleanjack.androidApp-9uu_Mnil3o6ItlGGyIEfgA==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.cleanjack.androidApp-9uu_Mnil3o6ItlGGyIEfgA==/lib/arm64, /data/app/com.example.cleanjack.androidApp-9uu_Mnil3o6ItlGGyIEfgA==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
我对如何解决这个问题一无所知,因为在调试哈希图时,是用正确的数据正确创建的。只有当试图将它映射到body时,它突然找不到hashmap。我正在使用 kotlin 1.5.10 和 ktor 1.5.3
解决方案
推荐阅读
- java - 有没有办法改变 Lambda 表达式中的值?
- azure-cosmosdb - CosmosDB 迁移 MERN-无法读取集合
- python-3.x - zlib1g-dev 已安装但显示 ModuleNotFoundError: No module named 'zlib'
- python - django select 与 3 个表相关
- python-3.x - 透视重复的时间序列数据
- python - 关于合并熊猫数据框的问题
- sql - 如何查看雪花的统计数据?
- python - discord.py 输出 eval 的结果
- windows - 无法在 Windows 中找到 XML/Simple.pm
- swift - 以起始接触点画一条直线