空对象参考Retrofit

时间:2019-07-05 14:37:38

标签: android exception kotlin retrofit2

我正在尝试在Kotlin Android项目中使用Retrofit实现API。此API尚未在项目的另一个活动中使用,并且可以正常工作。实际情况略有不同。我正在尝试在打开Web视图的活动中实现此API,并在JS的回调中调用翻新实例和API。

在这种情况下,API无法启动,并且我收到错误消息:

  

试图在空对象引用上调用虚拟方法'java.lang.Object android.content.Context.getSystemService(java.lang.String)'

有任何与此问题相关的想法吗? 谢谢

我已经检查了所有链接到API的对象,以防止所有空指针。 我也曾尝试在UiThread上调用api,但没有任何帮助。

//this is the request creation
override fun callMonthlySavingApi(response: ChangeMonthlySavingResponse) {
        iView.showLoader()
        val request = UserSettingsRequest.RequestBuilder()

        request.monthlySaving = response.value

        interactor.updateMonthlySaving(request.createRequestParams(), this)
    }

//this is the api implementation
 override fun updateMonthlySaving(
        request: UserSettingsRequest,
        listener: ChangeMonthlySavingMVP.ChangeMonthlySavingModel.onUpdateMonthlySavingListener
    ) {
        val response: Single<UserSettingsResponse> = apiClient.updateUser(
            ApiUtils.getEndpoint(ApiUtils.ApiKey.POST_UPDATE_USER_SETTINGS),
            request.getMapRequest()
        )

        response.subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                { data: UserSettingsResponse? ->
                    if (data != null && !data.checkError()) {
                        listener.onUpdateMonthlySavingFinish()
                    } else {
                        listener.onUpdateMonthlySavingInternalError(data?.error?.message ?: "Error")
                    }
                },
                { throwable: Throwable? ->
//here i receive the error and it seems linked to nothing
//ERROR:
//Attempt to invoke virtual method 'java.lang.Object //android.content.Context.getSystemService(java.lang.String)' on a null //object reference

                    if (throwable != null) {
                        listener.onUpdateMonthlySavingError(throwable)
                    }
                }
            )
    }

这是错误:

  

试图在空对象引用上调用虚拟方法'java.lang.Object android.content.Context.getSystemService(java.lang.String)'

0 个答案:

没有答案