繁体   English   中英

改造 - kotlin - 指定为非空的参数为空

[英]retrofit - kotlin - Parameter specified as non-null is null

我在我的应用程序中使用 mvvm 、 kotlin 、改造和 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

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

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

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

val id: String?

请仔细检查,在您的情况下,任何值丢失或为空

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM