android - 运行 map Activity 时应用程序崩溃

标签 android performance kotlin

我的项目 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/

相关文章:

javascript - 性能:对象内部的变量与函数内部的变量

android - RxJava 2 - 列表对象中的过滤器列表

android - Kotlin JaCoCo,无覆盖 -> IllegalClassFormatException ...请提供原始的非仪器类

android - 如何在 ArrayAdapter 中使用 DownloadManager

java - 从 SQLite 表中获取随机值

android - ImageView 相对于屏幕居中(忽略状态栏和导航栏)

android - 条形图的AchartEngine实现

r - 自动查找软件性能测试中的错误?

javascript - 指向 null 的 JavaScript 对象链会被垃圾收集吗?

kotlin - 在 Kotlin 中将不可变映射复制到可变映射