Korzystam z Google Maps Android SDK 11.6.2 (Wypróbowałem także 15.0.1), ale dostaję następującą awarię przed pokazaniem mapy. Już sprawdzony klucz API w manifeście, jest dostępny, ale nadal występuje ten problem. Mam wersję targetSDk jako 28. Czy to powoduje ten problem.
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@[email protected] (100408-196123505):25)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at el.b(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):3)
at ek.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):4)
at em.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):51)
at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):11)
at dw.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):16)
at dw.run(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (100408-196123505):61)
android
google-maps
google-play-services
Ramprasad
źródło
źródło
Odpowiedzi:
Umieść to w
<application>
znaczniku Manifest :Więcej informacji: https://issuetracker.google.com/issues/79478779
źródło
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/BasicNameValuePair;
po przejściu na system AndroidX (i kolejne zwiększenie limitu metod 65K)To rozwiąże twoją awarię. Zastosuj to w manifeście
źródło
android:usesCleartextTraffic="true"
? Inne odpowiedzi nie wspominają o tej linii. Więc opcjonalnie?android:usesCleartextTraffic="true"
problemem jest to, że dostaniesz się później, to ze względów bezpieczeństwa.android:usesCleartextTraffic=”true”
pozwala to komunikować się za pomocą czystych linków http - to jest status quo. O ile tylko rozumiemandroid:usesCleartextTraffic=”false”
, aplikacja byłaby „bezpieczniejsza”. Proszę popraw mnie jeżeli się mylę.Wykonaj jedno z następujących rozwiązań:
1- Zaktualizuj bibliotekę Play-Services-Maps do najnowszej wersji:
2- Lub dołącz następującą deklarację do
<application>
elementuAndroidManifest.xml
.źródło
Jeśli Twoja aplikacja jest kierowana na interfejs API na poziomie 28 (Android 9.0) lub wyższy, musisz dołączyć następującą deklarację w
<application>
elemencie AndroidManifest.xml.źródło
Jeśli Twoja aplikacja jest kierowana na interfejs API na poziomie 28 (Android 9.0) lub wyższy, musisz dołączyć następującą deklarację w elemencie AndroidManifest.xml. zobacz zmiany behawioralne aplikacji kierowanych na 28+ w poniższym linku
https://developer.android.com/about/versions/pie/android-9.0-changes-28
źródło
Jeśli tak się stanie w Androidzie 8.0 lub nowszym, po prostu umieść ten wiersz w tagu manifestu aplikacji
źródło
Ustaw tis:
Lubię to:
źródło
Dodaj uprawnienia w pliku manifestu
i częściowo wstaw ten wiersz kodu
Miałem ten sam problem i zostało to naprawione.
źródło
Oto rozwiązanie
Dodanie tego wiersza do wewnętrznego
<application>
tagu Menifest.xmlpo więcej informacji
źródło
utwórz plik xml res / xml / network_security_config.xml
I dodaj tag 2 tagi w pliku AndroidManifest.xml
Dodaj także useLibrary „org.apache.http.legacy” do stopnia kompilacji aplikacji
źródło