안드로이드
안드로이드 targetSdkVersion 28 인 경우 HTTP 통신 시 오류 해결 방법
Dokon Jang
2019. 7. 14. 17:28
반응형
안드로이드 앱의 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>
반응형