오류 내용
안드로이드 스튜디오를 통해 개발을 진행하던 중 오류가 발생하였습니다.
- [java.net.UnknownServiceException: CLEARTEXT communication to imagescdn.gettyimagesbank.com not permitted by network security policy, java.net.UnknownServiceException: CLEARTEXT communication to imagescdn.gettyimagesbank.com not permitted by network security policy, java.net.UnknownServiceException: CLEARTEXT communication to imagescdn.gettyimagesbank.com not permitted by network security policy]
위의 문제가 발생하는 이유는 안드로이드 애플리케이션이 네트워크 트래픽을 암호화하지 않은 상태로 전송하려고 할 때 발생하는 보안 정책 에러라고 합니다. Android9(API 레벨 28)부터는 기본적으로 암호화되지 않은 트래픽을 막는 정책이 기본으로 활성화되어 있습니다. 이로 인해 HTTP 트래픽이 막히게 되어 이와 같은 에러가 발생할 수 있습니다.
오류 해결 방법
1. HTTPS: 사용
가장 쉬운 방법으로 현재 앱 안에서 사용 중인 네트워크 주소를 http -> https로 변경하는 것입니다.
2. Network Security Config 설정 변경 :
res/xml/network_security_config.xml 파일을 생성하고 다음과 같이 설정합니다.
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system"/>
</trust-anchors>
</base-config>
</network-security-config>
그리고 Manifast에 'appllication' 엘리먼트에 다음과 같이 netwrokSecuretyConfig'속성을 추가합니다.
<application
...
android:networkSecurityConfig="@xml/network_security_config">
</application>
이렇게 오류를 해결할 수 있습니다.
반응형