我的项目 map Activity 不起作用
我只是将 api key 粘贴到 google_maps_api.xml
并点击运行
Logcat:
E/AndroidRuntime: FATAL EXCEPTION: Thread-5 Process: com.example.appmy.lofind, PID: 10901 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion; at el.b(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):3) at ek.a(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):4) at em.a(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):51) at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):11) at dw.a(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):16) at dw.run(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):61) Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.ProtocolVersion" on path: DexPathList[[zip file "/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]] 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@12848026@12.8.48 (040700-196123505):25) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at el.b(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):3) at ek.a(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):4) at em.a(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):51) at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):11) at dw.a(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):16) at dw.run(:com.google.android.gms.dynamite_mapsdynamite@12848026@12.8.48 (040700-196123505):61) E/SchedPolicy: set_timerslack_ns write failed: Operation not permitted
最佳答案
我在以下位置找到了另一个解决方案 Android Google maps java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion
只需将其添加到您的 list 中:
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
更新:
从 Google Maps SDK 版本 16.1.0 开始,您可以跳过添加上述解决方案,因为标签已添加到 map 库的 AndroidManifest 中。
https://developers.google.com/maps/documentation/android-sdk/releases#2019-02-06
Added the following declaration to the AndroidManifest.xml to support the Apache HTTP client on Android P and above. After updating to com.google.android.gms:play-services-maps:16.1.0 you can remove this line from your own AndroidManifest.xml. (Issue 117591497)
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
关于android - 运行 map Activity 时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897054/