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
반응형

+ Recent posts