Vintage appMaker의 Tech Blog

Android 8.0 이상에서 http 정책(Cleartext http 에러, class not found) 본문

Source code or Tip/Android(Java, Kotlin)

Android 8.0 이상에서 http 정책(Cleartext http 에러, class not found)

VintageappMaker 2021. 1. 27. 20:41

Android 8.0 이상에서는 멀쩡하게 잘 사용하던 regacy http(org.apache.http)가 에러를 발생시킨다. 

주로

 

- class not found

- Cleartext HTTP ...... not permitted 

 

이다. 이는 구글정책상 http를 봉쇄하겠다는 이유이기도 하다. 보안상 http가 문제되기에 극단의 조치를 취했다고 생각된다. 그러면

 

regacy http를 모두 고쳐야 하는 것일까?

그것은 아니다. AndroidMainfest.xml에 다음과 같이 선언해주면 기존의 소스를 그대로 사용할 수 있다. 

첫 번째로 "class not found" 에러를 무시하려면 Application 섹션 안에 

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

로 정의해주면 된다. 

두번째로 "Cleartext HTTP ...... not permitted "에러를 무시하려면 application 섹션에

android:usesCleartextTraffic="true"

를 하면 https 보안에러를 무시할 수 있다. 

Comments