Estoy usando Google Maps Android SDK 11.6.2 (también probé 15.0.1), pero aparece el siguiente bloqueo antes de que se muestre el mapa. Ya se verificó la clave API en el manifiesto, está disponible, pero aún así ocurre este problema. Tengo una versión de targetSDk como 28.Es que causa este problema.
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
fuente
fuente
Respuestas:
Ponga esto en la
<application>
etiqueta Manifiesto :Más información: https://issuetracker.google.com/issues/79478779
fuente
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/BasicNameValuePair;
después de cambiar a AndroidX (y el aumento del límite de métodos de 65K subsiguiente)Esto resolverá tu bloqueo. Aplicar esto en manifiesto
fuente
android:usesCleartextTraffic="true"
bueno? Otras respuestas no mencionan esta línea. ¿Tan opcional?android:usesCleartextTraffic="true"
es el problema que recibirá más adelante, es por razones de seguridad.android:usesCleartextTraffic=”true”
esto permite comunicarse con enlaces http de texto sin formato, eso es el status quo. Por lo que yo entiendo, soloandroid:usesCleartextTraffic=”false”
haría que la aplicación sea más "segura". Por favor corrígeme si estoy equivocado.Realice una de las siguientes soluciones:
1- Actualiza la biblioteca de play-services-maps a la última versión:
2- O incluya la siguiente declaración dentro del
<application>
elemento deAndroidManifest.xml
.fuente
Si su aplicación está dirigida al nivel de API 28 (Android 9.0) o superior, debe incluir la siguiente declaración dentro del
<application>
elemento de AndroidManifest.xml.fuente
Si su aplicación está dirigida al nivel de API 28 (Android 9.0) o superior, debe incluir la siguiente declaración dentro del elemento de AndroidManifest.xml. vea los cambios de comportamiento de la aplicación dirigida a mayores de 28 años en el siguiente enlace
https://developer.android.com/about/versions/pie/android-9.0-changes-28
fuente
Si esto sucede en Android 8.0 o superior, simplemente ponga esta línea en su etiqueta de aplicación de manifiesto
fuente
Establecer tis:
Me gusta esto:
fuente
Agregar permisos en el archivo de manifiesto
y en parte pon esta línea de código
Tuve el mismo problema y esto fue solucionado.
fuente
Aquí esta la solución
Agregar esta línea a su Menifest.xml dentro
<application>
etiquetapara más información
fuente
crear un archivo xml res / xml / network_security_config.xml
Y agregue 2 etiquetas en su AndroidManifest.xml
Agregue también useLibrary 'org.apache.http.legacy' en su aplicación de construcción
fuente