使用volley进行基本网络操作,将项目添加为模块时出现无连接握手错误。
虽然该模块在另一个项目中运行良好。
在研发方面,添加了重试策略,但没有用仍然出现相同的错误。
这是我的代码。 https://gist.github.com/fizzysoftware/a895bc2cbd1ad9a048277859f3f23963
可能是以下两种情况之一:
这些至少是我迄今为止遇到过的案例...
将 url 从 Https 更改为 Http 即可。
在我的项目中也面临同样的问题。在棉花糖中它的工作足够了。但在 Kitkat 版本中却提出了这个问题
“com.android.volley.NoConnectionError:javax.net.ssl.SSLHandshakeException:握手失败”
为了处理这个问题,我使用了谷歌的身份验证依赖项。请在你的 Gradle 中添加以下依赖项
compile 'com.google.android.gms:play-services-auth:11.0.2'
如果需要安装,请实现低版本安装Security Provider的方法
private void updateAndroidSecurityProvider(Activity callingActivity) {
try {
ProviderInstaller.installIfNeeded(this);
} catch (GooglePlayServicesRepairableException e) {
// Thrown when Google Play Services is not installed, up-to-date, or enabled
// Show dialog to allow users to install, update, or otherwise enable Google Play services.
GooglePlayServicesUtil.getErrorDialog(e.getConnectionStatusCode(), callingActivity, 0);
} catch (GooglePlayServicesNotAvailableException e) {
Log.e("SecurityException", "Google Play Services not available.");
}
}
然后在进行网络操作之前调用 Activity 中的方法。