Неразрешенная ссылка (успех, ошибка) при попытке использовать api поиска TOMTOM в приложении kotlin

Я пытаюсь использовать API поиска TOMTOM в моем приложении kotlin

Вот мой код:

    private fun testSearch() {

        val observer = object : DisposableSingleObserver<FuzzySearchResponse>() {
            val text = "cairo"
            val search = FuzzySearchQueryBuilder.create(text).build()
            override fun onSuccess(fuzzySearchResponse: FuzzySearchResponse) {
                search.success(fuzzySearchResponse.results)
            }

            override fun onError(throwable: Throwable) {
                search.error(null, Error(throwable.message))
            }
        }
    }

добавлен API в AndroidManfist.xml и инициализировал поиск Tomtom в моем Gradle файл

как показано на изображении, IDLE не может найти ни ошибки ссылки, ни успеха.

1 ответ

Решение

Ваша IDE не может найти ссылку, потому что вы ищете ее внутри FuzzySearchQuery объект вместо SearchApiобъект, который вообще не определен в вашем коде. Найдите решение в приведенной ниже (слегка измененной) функции:

private fun testSearch() {

    val searchApi = OnlineSearchApi.create(applicationContext)!!
    val text = "cairo"
    val searchQuery = FuzzySearchQueryBuilder.create(text).build()

    val observer = object: DisposableSingleObserver<FuzzySearchResponse>() {
        override fun onSuccess(t: FuzzySearchResponse) {
            for (r in t.results) {
                Toast.makeText(applicationContext, r.address.freeformAddress, Toast.LENGTH_SHORT).show()
            }
        }
        override fun onError(e: Throwable) {
            Toast.makeText(applicationContext, "err", Toast.LENGTH_SHORT).show()
        }
    }
    searchApi.search(searchQuery).subscribeWith(observer)
}
Другие вопросы по тегам