android - kotlin.TypeCastException: null 不能转换为非 null 类型 com.example.wikipedia.models.WikiResult
问题描述
每次我尝试运行我的 Wikipedia 应用程序时都会发现此错误
kotlin.TypeCastException: null cannot be cast to non-null type com.example.wikipedia.models.WikiResult
at com.example.wikipedia.providers.ArticleDataProvider$getRandom$1.invoke(ArticleDataProvider.kt:38)
at com.example.wikipedia.providers.ArticleDataProvider$getRandom$1.invoke(ArticleDataProvider.kt:13)
at com.github.kittinunf.fuel.core.DeserializableKt$response$2.invoke(Deserializable.kt:106)
at com.github.kittinunf.fuel.core.DeserializableKt$response$2.invoke(Unknown Source:6)
at com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke(Deserializable.kt:193)
at com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke(Unknown Source:0)
我的 ArticleProvider.kt 看起来像这样
package com.example.wikipedia.providers
import com.example.wikipedia.models.Urls
import com.example.wikipedia.models.WikiResult
import com.github.kittinunf.fuel.core.FuelManager
import com.github.kittinunf.fuel.core.ResponseDeserializable
import com.github.kittinunf.fuel.httpGet
import com.google.gson.Gson
import kotlinx.android.parcel.Parcelize
import java.io.Reader
import kotlinx.android.synthetic.main.activity_main.*
class ArticleDataProvider {
init {
FuelManager.instance.baseHeaders= mapOf("User-Agent" to "Jackson Wikipedia")
}
fun search (term: String, skip: Int, take: Int, responseHandler: (result: WikiResult) -> Unit?){
Urls.getSearchUrl(term, skip, take).httpGet()
.responseObject(WikipediaDataDeserializer()){_, _,result ->
val(data, _)= result
responseHandler.invoke(data as WikiResult)// here is the problem line 38
}
}
fun getRandom(take: Int, responseHandler: (result: WikiResult) -> Unit?){
Urls.getRandomUrl(take).httpGet()
.responseObject(WikipediaDataDeserializer()){_, _, result->
val(data, _)= result
responseHandler.invoke(data as WikiResult)
}
}
class WikipediaDataDeserializer : ResponseDeserializable<WikiResult> {
override fun deserialize(reader: Reader): WikiResult? {
return Gson().fromJson(reader, WikiResult::class.java)}
}
}
解决方案
推荐阅读
- qt - 如何在不使用 Yocto 构建的情况下启用 etnaviv 驱动程序?
- azure-cosmosdb - azure cosmosDB 有 @Query 吗?(文档数据库)
- vuetify.js - 如何更改 V-Data-Table 页脚的默认样式?
- bash - tmux:在窗格中运行命令并在 bash 脚本中捕获结果
- javafx - JavaFX(场景生成器)箭头键 OnKeyPressed
- node.js - 运行“npm install”后,Docker 构建(Windows)挂起
- yii2 - 如何根据 Yii2 中的 radioList 更改显示/隐藏 div 框?
- loops - 使用ffmpeg批量处理文件夹中的所有文件?
- video-streaming - 媒体基金会:英特尔硬件 MFT 的 SPS/PPS 问题
- flowground - 我需要在 flowground 中使用某种决策模块