본문 바로가기

프로그래밍/안드로이드[Android]

[안드로이드] apache http 에러 해결 방법[Android 9 버전]



저도 핸드폰 기종을 변경하게 되면서 Android 9 이상을 사용하게 되면서 기존에 작동하는 앱이 다음과 같은 에러를 발생시켰습니다.

 

일단 원인으로는 다음과 같습니다.

 

최신 버전에서는 Apache HTTP 클라이언트가 지원 중단되었기 때문에 별도로 설정해줘야 한다고 하네요.

 

 

아래의 사이트를 들어가 보시면 자세히 나와있습니다.

 

 

Android 6.0 변경 사항  |  Android Developers

Along with new features and capabilities, Android 6.0 (API level 23) includes a variety of system changes and API behavior changes. This document highlights some of the key changes that you should understand and account for in your apps. If you have previo

developer.android.com

 

 

자 그럼 해결을 해야겠죠?

 

해결 방법은 다음과 같습니다.

AndroidManifest.xml 에 다음과 같은 코드를 추가해주세요.

 

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

 

참고로 application 태그 안에 넣어 주시면 됩니다.

 

 

자 넣어주시고 실행하면 제대로 동작을 하게 됩니다.

 

혹시나 참고하실 사항으로는

 

수정 이후 에러는 로그에 안 찍히는데 Webview에서 ERR_CLEARTEXT_NOT_PERMITTED 나

인터넷 통신이 안된다 하시면 다음 태그를 추가합니다.

 

 

마찬가지로 application 속성에 다음과 같은 코드를 추가합니다.

<manifest>
  <application
    android:usesCleartextTraffic="true">
  </application>
</manifest>  

그리고 다시 실행해보시면 잘 실행되는 것을 볼 수 있습니다.