본문 바로가기
안드로이드

안드로이드 targetSdkVersion 28 인 경우 HTTP 통신 시 오류 해결 방법

by Dokon Jang 2019. 7. 14.
반응형

안드로이드 앱의 targetSdkVersion이 28 이상에서 HTTP 통신 할 경우 아래와 같은 오류가 발생합니다.

E/AndroidRuntime: FATAL EXCEPTION: Thread-9
    Process: com.mypackage, PID: 24239
    java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/HeaderGroup;
        at net.daum.mf.map.common.net.NetWebClient._getResponse(NetWebClient.java:257)
        at net.daum.mf.map.common.net.NetWebClient.openContentStream(NetWebClient.java:274)
        at net.daum.mf.map.common.net.WebClient.openContentStream(WebClient.java:135)
        at net.daum.android.map.openapi.auth.OpenAPIKeyAuthenticationWebService$1.run(OpenAPIKeyAuthenticationWebService.java:177)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.message.HeaderGroup" on path: DexPathList
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at net.daum.mf.map.common.net.NetWebClient._getResponse(NetWebClient.java:257) 
        at net.daum.mf.map.common.net.NetWebClient.openContentStream(NetWebClient.java:274) 
        at net.daum.mf.map.common.net.WebClient.openContentStream(WebClient.java:135) 
        at net.daum.android.map.openapi.auth.OpenAPIKeyAuthenticationWebService$1.run(OpenAPIKeyAuthenticationWebService.java:177)

 

 

이러한 경우 AndroidManifast.xml에 아래와 같이 처리하면 해결됩니다.

원인은 안드로이드 P 이상에서는 HTTS 통신만 가능합니다. 따라서 HTTP 통신을 할 수 있도록 해야합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mypackage" >
    <application
        ...
        android:usesCleartextTraffic="true"
        ... >


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

 

 

반응형

댓글