android.content.Context.getSystemService (java.lang.String) 'для ссылки на нулевой объект - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь реализовать API с Retrofit в моем проекте Kotlin Android. Этот API еще используется в проекте в другой деятельности, и он работает. Реальная ситуация немного отличается. Я пытаюсь реализовать этот API в операции, в которой я открываю веб-представление и при обратном вызове JS я вызываю экземпляр модификации и API.

В этом случае API не запускается, и я получаю сообщение об ошибке:

Попытка вызвать виртуальный метод 'java.lang.Object android.content.Context.getSystemService (java.lang.String)' для ссылки на пустой объект

Есть идеи, связанные с этой проблемой? Спасибо

Я проверил все объекты, связанные с API, чтобы предотвратить все нулевые указатели. Я также пытался вызвать API на UiThread, но ничего не помогло.

//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)' для ссылки на пустой объект

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...