org - com google android gms dynamite_mapsdynamite
Google Maps de Android java.lang.NoClassDefFoundError: Error de resoluciĆ³n de: Lorg/apache/http/ProtocolVersion (7)
Estoy utilizando el SDK de Android de Google Maps 11.6.2 (también lo intenté con el 15.0.1), pero me aparece el bloqueo antes de que aparezca el mapa. Ya se comprobó la clave API en el manifiesto, está disponible, pero aún se produce este problema. Estoy teniendo la versión de targetSDk como 28.Is causa este problema.
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion;
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)
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)
Esto resolverá su accidente. Aplica esto en manifiesto.
<application
...
>
...
<uses-library android:name="org.apache.http.legacy"
android:required="false"/>
...
<application/>
Ponga esto en la etiqueta
<application>
manifiesto:
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
Más información: https://issuetracker.google.com/issues/79478779
Realice una de las siguientes soluciones:
1- Actualice la biblioteca de mapas de play-services a la última versión:
com.google.android.gms:play-services-maps:16.1.0
2- O incluya la siguiente declaración dentro del elemento
<application>
de
AndroidManifest.xml
.
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
Si esto sucede en Android 8.0 o superior, simplemente coloque esta línea en su etiqueta de aplicación de manifiesto
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
Si su aplicación está dirigida a nivel API 28 (Android 9.0) o superior, debe incluir la siguiente declaración dentro del elemento AndroidManifest.xml. vea los cambios de comportamiento de la aplicación orientada a 28+ en el siguiente enlace
https://developer.android.com/about/versions/pie/android-9.0-changes-28
Si su aplicación tiene como objetivo el nivel de API 28 (Android 9.0) o superior, debe incluir la siguiente declaración dentro del elemento
<application>
de AndroidManifest.xml.
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
crear un archivo xml res / xml / network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
Y agrega 2 etiquetas a tu AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest......>
<application android:networkSecurityConfig="@xml/network_security_config">
<activity..../>
......
......
<uses-library
android:name="org.apache.http.legacy"
android:required="false"/>
</application>
También agregue useLibrary ''org.apache.http.legacy'' en su aplicación, compile gradle
defaultConfig {
applicationId "com.ascorb.merazinn"
minSdkVersion 19
targetSdkVersion 28
versionCode 6
versionName "1.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
useLibrary ''org.apache.http.legacy''
}