[android] Android Google지도 java.lang.NoClassDefFoundError : 실패한 해결 방법 : Lorg / apache / http / ProtocolVersion

Google지도 Android SDK 11.6.2 (15.0.1도 시도)를 사용하고 있지만지도가 표시되기 전에 충돌이 발생합니다. 매니페스트에서 API 키를 이미 확인했지만 사용 가능하지만 여전히이 문제가 발생합니다. 28로 targetSDk 버전이 있는데이 문제가 발생합니다.

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion;
        at el.b(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):3)
        at ek.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):4)
        at em.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):51)
        at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):11)
        at dw.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):16)
        at dw.run(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):61)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.ProtocolVersion" on path: DexPathList[[zip file "/system/priv-app/PrebuiltGmsCorePi/app_chimera/m/MapsDynamite.apk"],nativeLibraryDirectories=[/data/user_de/0/com.google.android.gms/app_chimera/m/00000036/MapsDynamite.apk!/lib/armeabi-v7a, /data/user_de/0/com.google.android.gms/app_chimera/m/00000036/MapsDynamite.apk!/lib/armeabi, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:126)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at ad.loadClass(:com.google.android.gms.dynamite_dynamiteloader@12848063@12.8.48 (100408-196123505):25)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at el.b(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):3) 
        at ek.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):4) 
        at em.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):51) 
        at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):11) 
        at dw.a(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):16) 
        at dw.run(:com.google.android.gms.dynamite_mapsdynamite@12848063@12.8.48 (100408-196123505):61) 



답변

이것을 Manifest <application>태그 에 넣으십시오 .

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

추가 정보 :
https://issuetracker.google.com/issues/79478779


답변

충돌이 해결됩니다. 매니페스트에 적용

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


<application/>


답변

다음 해결책 중 하나를 수행하십시오.

1- play-services-maps 라이브러리를 최신 버전으로 업데이트하십시오.

com.google.android.gms:play-services-maps:16.1.0

2- 또는의 <application>요소 내에 다음 선언을 포함시킵니다 AndroidManifest.xml.

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


답변

앱이 API 레벨 28 (Android 9.0) 이상을 대상으로하는 경우 <application>AndroidManifest.xml 요소 내에 다음 선언을 포함해야합니다 .

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


답변

앱이 API 레벨 28 (Android 9.0) 이상을 대상으로하는 경우 AndroidManifest.xml 요소 내에 다음 선언을 포함해야합니다. 아래 링크에서 앱 타겟팅 28+의 동작 변경 사항 확인

https://developer.android.com/about/versions/pie/android-9.0-changes-28
https://developer.android.com/about/versions/pie/android-9.0-changes-28


답변

이것이 안드로이드 8.0 이상에서 발생하면 매니페스트 응용 프로그램 태그 에이 줄을 넣으십시오.

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


답변

tis를 설정하십시오 :

multiDexEnabled true

이처럼 :

android {
    compileSdkVersion 28
    defaultConfig {

        multiDexEnabled true

    }
    buildTypes {
        release {

        }
    }
}