구글 플레이스토어 정책변경으로 이제 Android SDK 28미만 버전은 올릴수 없게 되었습니다.
관리하고 있는 안드로이드 앱의 경우 SDK버전이 27인데 
이에 대응하기 위해 28이상으로 올리고 앱을 실행 시키니 앱이 바로 죽어 버리네요.
에러로그를 찾아보니

 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion;
라는 에러가 발생하여 죽었다고 합니다.


결론적으로 해결방법은 두가지 행동을 취해야 하는데
AndroidManifest.xml의 application 태그안에 아래 소스를 추가하고 

<uses-library android:name="org.apache.http.legacy" android:required="false" />

application 속성에 아래 소스를 추가해야 합니다.

android:usesCleartextTraffic="true"




(예시 모습)

안드로이드6 버전까지 지원했던 Apache HTTP를 안드로이드9버전으로 업데이트 되면서
완전히 지원 종료 되어서 발생했다는게 이유라고 합니다.
위 소스는 지원은 종료 되었지만 나는 계속 사용 하겠다라고 선언 하는 거랄까요?

SDK 28에 대한 더 자세한 변경정보는 Android Developer 사이트에서 확인 가능합니다.
이 문제로 저철골머리 썩히시는 분들께 도움이 되었으면 한다.

Post a Comment

다음 이전