728x90
반응형
Android 9.0이상 버전이 출시되었는데도 Google은 아직 라이브러리를 수정하지 않았습니다.
한창 이슈였던 부분이었는데 문서화도 하지 않고 그냥 오류만 발생했습니다.
Apache http는 android 6.0 부터 삭제가 되었지만 이를 준수하지 않아 큰 문제를 만들기도 하였습니다.
아직도 구버전의 google map 을 사용하거나 이슈를 직감하지 못했던 분들에게 도움이 되고자 해결방법을 알아보겠습니다.
2019-12-23 10:56:02.355 20618-20812/xxx.xxx.xxx E/AndroidRuntime: FATAL EXCEPTION: Thread-17
Process: xxx.xxx.xxx, PID: 20618
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion;
at br.b(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):2)
at bq.a(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):3)
at bs.a(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):20)
at com.google.maps.api.android.lib6.drd.ak.a(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):6)
at aw.a(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):13)
at aw.run(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):49)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.ProtocolVersion" on path: DexPathList[[zip file "/data/user_de/0/com.google.android.gms/app_chimera/m/00000043/MapsDynamite.apk"],nativeLibraryDirectories=[/data/user_de/0/com.google.android.gms/app_chimera/m/00000043/MapsDynamite.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at w.loadClass(:com.google.android.gms.dynamite_dynamiteloader@19831065@19.8.31 (100400-0):16)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at br.b(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):2)
at bq.a(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):3)
at bs.a(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):20)
at com.google.maps.api.android.lib6.drd.ak.a(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):6)
at aw.a(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):13)
at aw.run(:com.google.android.gms.dynamite_mapsdynamite@19831065@19.8.31 (100400-0):49)
1. AndroidManifest.xml 에 uses-library 추가
기존 google maps library 를 그대로 사용하는 방법입니다.
AndroidManifest.xml파일에서 application 수준에 uses-library 를 추가 해주면 됩니다.
<application>
...
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
</application>
2. Google maps 라이브러리 업데이트
다른 방법으로는 수정된 google maps library 를 사용하면 됩니다.
com.google.android.gms:play-services-maps:16.x.x
이제 다시 build를 하면 정삭적으로 실행이 됩니다.
728x90
반응형
'프로그래밍 > Android' 카테고리의 다른 글
[Android] keystore 비밀번호 찾기 (0) | 2019.12.30 |
---|---|
[Android] Manifest merger failed : Attribute application@appComponentFactory 오류 (0) | 2019.12.26 |
[Android] targetSdkVersion 28 이상 버전 HTTP 사용 (0) | 2019.12.24 |
[Android] ScrollView Scroll 처리 (0) | 2019.08.19 |
[Android] Android Studio org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'. (0) | 2019.05.14 |