javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xb7a8aa38: Failure in SSL library, usually a protocol error
error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol (external/openssl/ssl/s23_clnt.c:714 0xa8f6e6e2:0x00000000)
안드로이드에서 api20 미만에서 발생하는 오류이고 젤리빈 에뮬레이터에서 발생했다.
안드로이드 20미만에서는 TLSv1 SSLv3만 지원을 하는데 서버 프로토콜이 이를 지원하지 않으면 발생한다
api20미만에서도 구글 플레이 서비스를 이용해 해결할 수 있지만 예전 에뮬레이터에선 구글 플레이가 지원이 안되어서 해결을 못하였다.
try {
ProviderInstaller.installIfNeeded(getContext());
} catch (GooglePlayServicesRepairableException e) {
// Indicates that Google Play services is out of date, disabled, etc.
// Prompt the user to install/update/enable Google Play services.
GoogleApiAvailability.getInstance()
.showErrorNotification(context, e.connectionStatusCode)
// Notify the SyncManager that a soft error occurred.
syncResult.stats.numIoExceptions++;
return;
} catch (GooglePlayServicesNotAvailableException e) {
// Indicates a non-recoverable error; the ProviderInstaller is not able
// to install an up-to-date Provider.
// Notify the SyncManager that a hard error occurred.
syncResult.stats.numAuthExceptions++;
return;
}
아래 라이브러리를 추가해 주어야 한다.
implementation 'com.google.android.gms:play-services-auth:17.0.0'
요즘은 minsdk를 안드로이드6.0으로 설정하는 추세인거 같은데 그렇다면 발생할 일이 없겠지만 혹시 몰라서 올린다.
https://developer.android.com/training/articles/security-gms-provider#java
'개발정보 > 안드로이드' 카테고리의 다른 글
안드로이드 무선 디버깅 하기 adb (0) | 2022.11.25 |
---|---|
어플리케이션에 클래스가 중복될 때 (0) | 2022.11.24 |
안드로이드 에뮬레이터 강제종료시 (0) | 2022.11.10 |
오래된 프로젝트를 사용해야 할 때 (0) | 2022.11.10 |
http:// 통신이 안될 때 (0) | 2022.11.10 |