web-dev-qa-db-fra.com

L'application se bloque lors de l'exécution de l'activité des cartes

L'activité Carte de mes projets ne fonctionne pas
Je viens de coller la clé d’API en place google_maps_api.xml et cliqué sur Exécuter

Logcat:

E/AndroidRuntime: EXCEPTION FATALE: Processus Thread-5: com.example.appmy.lofind, PID: 10901 Java.lang.NoClassDefFoundError: Echec de la résolution de: Lorg/Apache/http/ProtocolVersion; sur el.b (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 3) sur ek.a (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 4) sur em.a (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 51) sur com.google.maps.api.Android.lib6. drd.ap.a (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 11) sur dw.a (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8. 48 (040700-196123505): 16) à l'adresse dw.run (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 61) Causée par: Java.lang.ClassNotFoundException: N'a pas eu recherchez la classe "org.Apache.http.ProtocolVersion" sur le chemin d'accès: DexPathList [[fichier Zip "/ system/priv-app/PrebuiltGmsCore/app_chimera/m/MapsDynamite.apk"],nativeLibraryDirectories==/data/user_de/0/com .google.Android.gms/app_chimera/m/00000006/MapsDynamite.apk!/lib/x86,/system/lib]] à l'adresse dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.Java:126) sur Java.lang.ClassLoader.loadClass (ClassLoader.Java:379) sur ad.loadClass (: com.google.Android.gms.dynamite_dynamiteloader @ 12848026 @ 12.8.48 (040700-196123505): 25) sur Java.lang.ClassLoader .loadClass (ClassLoader.Java:312) sur el.b (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 3) sur ek.a (: com.google.Android. gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 4) sur em.a (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 51) sur com. .maps.api.Android.lib6.drd.ap.a (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 11) à l'adresse dw.a (: com.google.Android .gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 16) à l'adresse dw.run (: com.google.Android.gms.dynamite_mapsdynamite @ 12848026 @ 12.8.48 (040700-196123505): 61) : Echec d'écriture de set_timerslack_ns: opération non autorisée.

14
MajdNaji

Le même problème ici lorsque vous utilisez le SDK 28 cible. Le retour au SDK 27 a résolu le problème.


Ne retournez pas votre SDK cible.

Mieux utiliser cette solution https://stackoverflow.com/a/50944537/5710605

13

J'ai trouvé une autre solution sur Google Maps Android. Java.lang.NoClassDefFoundError: Echec de la résolution de: Lorg/Apache/http/ProtocolVersion

Ajoutez simplement ceci dans votre manifeste:

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

Mise à jour:

À partir de la version du kit de développement logiciel Google Maps 16.1.0 , vous pouvez ignorer l’ajout de la solution ci-dessus, car la balise a été ajoutée au manifeste Android de la bibliothèque de cartes.

https://developers.google.com/maps/documentation/Android-sdk/releases#2019-02-06

Ajout de la déclaration suivante dans le fichier AndroidManifest.xml afin de prendre en charge le client HTTP Apache sur Android P et supérieur. Après la mise à jour vers com.google.Android.gms: play-services-maps: 16.1.0 vous pouvez supprimer cette ligne de votre propre fichier AndroidManifest.xml. (Problème 117591497 )

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

51

Mettez ceci dans la balise Manifest:

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

Plus d'infos: https://issuetracker.google.com/issues/79478779

comme le dit la documentation Google:

Si vous utilisez com.google.Android.gms: play-services-maps: 16.0.0 ou une version inférieure et que votre application cible un niveau API de 28 (Android 9.0) ou une version ultérieure, vous devez inclure la déclaration suivante dans l'élément AndroidManifest. xml.

1
mhdjazmati