无法运行 Google Maps Android API Utility Demo

Posted

技术标签:

【中文标题】无法运行 Google Maps Android API Utility Demo【英文标题】:couldn't run Google Maps Android API Utility Demo 【发布时间】:2014-05-15 11:27:43 【问题描述】:

我在运行 Google Maps android API Utility Demo 时遇到问题,它显示以下错误:

04-03 16:32:37.397: E/dalvikvm(2592): Could not find class 'com.google.maps.android.utils.demo.ClusteringDemoActivity', referenced from method com.google.maps.android.utils.demo.MainActivity.onCreate
    04-03 16:32:37.452: E/AndroidRuntime(2592): FATAL EXCEPTION: main
    04-03 16:32:37.452: E/AndroidRuntime(2592): java.lang.NoClassDefFoundError: com.google.maps.android.utils.demo.ClusteringDemoActivity
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at com.google.maps.android.utils.demo.MainActivity.onCreate(MainActivity.java:20)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.Activity.performCreate(Activity.java:5163)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2061)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread.access$600(ActivityThread.java:140)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.os.Handler.dispatchMessage(Handler.java:99)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.os.Looper.loop(Looper.java:137)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread.main(ActivityThread.java:4895)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at java.lang.reflect.Method.invokeNative(Native Method)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at java.lang.reflect.Method.invoke(Method.java:511)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at dalvik.system.NativeStart.main(Native Method)

虽然我按照安装演示中显示的步骤进行操作,并且包中存在类 ClusteringDemoActivity

【问题讨论】:

贴出你试过的代码 我从这里导入了项目演示:github.com/googlemaps/android-maps-utils 【参考方案1】:

我通过将 GoogleMapsUtil 作为库添加到演示项目中解决了这个问题。

如果您在步骤从实用程序演示应用程序引用实用程序库中遵循https://developers.google.com/maps/documentation/android/utility/setup 的设置指南,请改为执行以下操作:

    右键单击您的演示项目 (MainActivity) 并选择“属性”。 单击 Android 选项卡。 在库部分下单击添加并选择地图实用程序项目(称为库)

【讨论】:

我在使用 CustomMarkerClusteringDemoActivity 时遇到了这个问题。您的解决方案也解决了这个问题。谢谢!! 这也解决了其他错误,例如: java.lang.NoClassDefFoundError: com.google.maps.android.heatmaps.HeatmapTileProvider$Builder (我把它放在这里以防其他人直接使用 GoogleMapsUtil 发生在我身上)【参考方案2】:

文档告诉你使用:

compile 'com.google.maps.android:android-maps-utils:0.4+'

使用它会报错。您必须使用 android-maps-utils:0.3+

compile 'com.google.maps.android:android-maps-utils:0.3+'

这将消除错误。

【讨论】:

您会注意到您导入的库也在使用 android-maps-utils:0.3+,这就是它起作用的原因

以上是关于无法运行 Google Maps Android API Utility Demo的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Maps API android studio “除非您更新 Google Play 服务,否则应用程序将无法运行”

无法通过 gradle 导入 com.google.maps.android:android-maps-utils

com.google.android.gms.maps.MapFragment:无法解析符号“地图”

import com.google.android.maps.geopoint 无法解析

Android:无法使用 Google Maps Fragment 进行共享元素转换

无法找到类com.google.android.gms.maps.SupportMapFragment