簡體   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