我的应用程序仍然崩溃,当互联网关闭时,我正在使用一个模块的服务,如翻新和OkHttp配置,我已经添加这些权限的清单上的应用程序清单和服务模块清单,但没有效果。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />但crashilytics记录了这些错误:
Fatal Exception: java.net.UnknownHostException: Unable to resolve host "api.com.br": No address associated with hostnameCaused by android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)发布于 2021-03-25 08:09:46
你提到的权限是让你的应用程序访问互联网、访问网络状态和访问wifi状态所必需的。但是,用户仍然可以在他们认为合适的时候打开和关闭互联网连接。
如果没有互联网连接,您的api.com.br域名系统查询将失败。
你可以在尝试进行任何网络呼叫之前检查互联网连接,并向用户显示错误,这样他们就会知道要打开它才能让你的应用正常工作。
你可以参考谷歌的Android文档here,了解如何检查互联网连接。
本质上:
private boolean isNetworkConnected(Context context) {
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
}此外,您应该计划在进行网络调用时捕获和处理任何与网络相关的异常,并使用该异常向用户显示有用的错误。
这是因为即使进行了连接预检查,在进行呼叫后仍有可能出现网络故障。但是,预检查将阻止您进行您知道会失败的呼叫。
https://stackoverflow.com/questions/66791059
复制相似问题