我的清单文件中有<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的互联网连接。看起来你的应用程序无法到达主机