Android Studio:加载时MapView应用崩溃

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio:加载时MapView应用崩溃相关的知识,希望对你有一定的参考价值。

我试图用我的位置标记显示地图。由于发生此错误,我决定在本教程(https://www.youtube.com/watch?v=mdCRxEn540U)之后从android Studio模板创建一个简单的基本应用程序。我做了几乎所有像教程一样的问题。在Google网站上正确生成API密钥。我的主应用程序发生了同样的错误:加载地图视图时应用程序崩溃(日志cat没有显示行错误)。不同之处可能在于SDK和API等工具。所以我在这里向你们展示,看看是否有人对此有任何线索。

这是SDK manager印刷品

这就是APIs in use

同样,我没有对Android Studio中的MapView模板应用程序代码进行任何更改。

可能会发生什么?

记录猫的消息:

08-30 19:49:42.694 17966-18008/com.appdidier.testmaps E/AndroidRuntime: FATAL EXCEPTION: Thread-6
    Process: com.appdidier.testmaps, PID: 17966
    java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion;
        at el.b(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):3)
        at ek.a(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):4)
        at em.a(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):51)
        at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):11)
        at dw.a(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):16)
        at dw.run(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):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:134)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at ad.loadClass(:com.google.android.gms.dynamite_dynamiteloader@12862026@12.8.62 (040700-199405334):25)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at el.b(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):3) 
        at ek.a(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):4) 
        at em.a(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):51) 
        at com.google.maps.api.android.lib6.drd.ap.a(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):11) 
        at dw.a(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):16) 
        at dw.run(:com.google.android.gms.dynamite_mapsdynamite@12862026@12.8.62 (040700-199405334):61) 
答案

我有同样的错误,并将此行添加到清单文件后,它再次工作

<application
   ....
   <uses-library android:name="org.apache.http.legacy" android:required="false"/>

谷歌有关于此错误的issue

以上是关于Android Studio:加载时MapView应用崩溃的主要内容,如果未能解决你的问题,请参考以下文章

将 MapView 添加到 Android 应用程序时,获取跨加载器异常

MapView

Android MapView - 没有使用调试 API 密钥加载图块

通过单击列表视图上的列表项更改 MapView Android Studio 上的位置相机视图

Android“你好,MapView”教程——地图瓦片不加载

保存 Android MapView 并重新加载