Rxjava2 "blockingGet"原因 无法解析主机:没有与主机名关联的地址



我的清单文件中有<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

我得到的错误是:

Caused by java.lang.RuntimeException: java.net.UnknownHostException: Unable to resolve host "xxx": No address associated with hostname
at io.reactivex.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:45)
at io.reactivex.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:91)
at io.reactivex.Single.blockingGet(Single.java:2492)

这个错误出现在我第一次使用blockingGet时。

List<Data> dataList = dataRepository.getDataFromApi().blockingGet();

DataRepository:

fun getDataFromApi(): Single<List<Data>> {
return dataService.getData()
.map { jsonApiObject ->
...
return@map data
}
}

如果我理解正确的话,当互联网丢失时就会发生这种情况。如何解决这个问题以及我的方法有什么问题?

更新

试图捕获这样的异常:

try {
val data = repository!!.getData().blockingGet()
...
} catch (e: SocketException) {
showNetworkErrorDialog()
}

错误仍然出现。

检查此URL的互联网连接。看起来你的应用程序无法到达主机

相关内容

最新更新