【问题标题】:retrofit - kotlin - Parameter specified as non-null is null改造 - kotlin - 指定为非空的参数为空
【发布时间】:2020-05-06 02:41:33
【问题描述】:

我在我的应用程序中使用 mvvm、kotlin、retrofit 和 courtin。我已经完成了几个请求,所有请求都可以正常工作,但是使用这个,我收到此错误“指定为非空的参数为空:方法 kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数列表”

这是我的 json

    {
"roomslist": [
{
"id": "1"
}
]
}

这些是我的模型

data class RoomsListModel(
    @Json(name = "roomslist")
    val roomsList: List<Rooms>
)

data class Rooms(

    @Json(name = "id")
    val id: String
}

这是我的 api 接口:

@FormUrlEncoded
@POST("getPlaceRooms.php")
fun getPlaceRooms2(@Field("amlakid")id:String):Deferred<RoomsListModel>

这是我的仓库:

fun getRooms(
    amlakId: String
): MutableLiveData<RoomsListModel> {
    scope.launch {
        val request = api.getPlaceRooms2(amlakId)
        withContext(Dispatchers.Main) {
            try {
                val response = request.await()
                roomsLiveData.value = response
            } catch (e: HttpException) {
                Log.v("this", e.message);
            } catch (e: Throwable) {
                Log.v("this", e.message);
            }
        }
    }
    return roomsLiveData;
}

应用运行时进入e: Throwable并返回错误

我的视图模型

class PlacesDetailsViewModel : ViewModel() {
private val repository = PlaceDetailsRepository()


fun getRooms(amlakId: String):MutableLiveData<RoomsListModel> {
    return repository.getRooms(amlakId)
}
}

这是我的活动请求:

viewModel.getRooms(amlakId).observe(this, Observer {
        vf.frm_loading.visibility = View.GONE

        it?.let {
            adapter.updateList(it?.roomsList)
            setNoItem(false)
        }

    })

我正在使用moshi

我试过清理,重建,但没有任何不同

你能帮帮我吗? 我的代码出了什么问题?

【问题讨论】:

  • 你能分享你的堆栈跟踪吗?

标签: android kotlin retrofit kotlin-coroutines android-viewmodel


【解决方案1】:

您应该尝试添加 ?到您的模型参数。不确定您的情况是否是字符串?它将确保您的字符串上可以有空值

val id: String?

请仔细检查,无论您的情况是缺少什么值或为空

【讨论】:

  • 应该与val roomsList: List&lt;Rooms&gt;?相关
  • 您确定添加了 Moshi 转换器吗?
【解决方案2】:

您是否尝试过在您的 val id: String 声明中删除 @Json 注释?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 2019-11-19
    • 2017-12-06
    • 1970-01-01
    • 2019-06-03
    • 2017-11-20
    相关资源
    最近更新 更多