无法在 Android 的地图上添加标记

Posted

技术标签:

【中文标题】无法在 Android 的地图上添加标记【英文标题】:Unable to add marker on map in Android 【发布时间】:2016-05-10 22:45:55 【问题描述】:

我在启动 mapActivity 时遇到了这个异常。

GooglePlayServicesUtil:Google Play 服务已过期。需要 8298000 但找到 6599036

并且应用程序在以下行崩溃。

final Marker marker = mMap.addMarker(new MarkerOptions().position(location);

注意:应用程序在 4.3 和 5.0.1 版本上运行良好,但在 4.4.2 中遇到此问题。有什么解决办法吗?

谢谢

【问题讨论】:

MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("My Maps "); // adding marker mMap.addMarker(marker); 你使用的是哪个版本compile 'com.google.android.gms:play-services-wearable:7.8.0'?? 您的播放服务已过时更新它 我正在使用这个:编译 'com.google.android.gms:play-services:8.3.0' @UsmanIshrat 你解决了吗? 【参考方案1】:

Google Play 服务已过期。需要 8298000 但找到 6599036

更新 Tools > Android > SDK Manager 中的软件包,然后检查 Extras 中所有有可用更新的软件包。

请使用更新版本

dependencies 
        compile 'com.google.android.gms:play-services:8.4.0'
        // or compile 'com.google.android.gms:play-services-wearable:7.8.0'
    

【讨论】:

## 添加依赖的步骤## 它将自动获取最新版本 1. 转到 文件菜单 > 项目结构 2. 从左侧面板中选择应用程序 3. 选择 Dependencies 选项卡 4. 点击 + 符号按钮 5. 选择 Library Dependency 6. 选择 google play service(您可以添加其他服务(如果需要) 7. 好的 要使用项目配置解决此问题,OP 实际上需要转向另一个方向并使用 Google Play 服务 6.5 或更早版本编译他们的应用程序。见这里:***.com/questions/19721415/…【参考方案2】:

这是一个运行时错误,当设备没有与您的应用程序编译时使用的至少相同版本的 Google Play 服务时发生。

如果用户没有您的应用所需的最低版本,您的应用中应该有代码提示用户升级 Google Play 服务。 旧的、现已弃用的方法是使用 GooglePlayServicesUtil:

status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (status != ConnectionResult.SUCCESS) 
    if (GooglePlayServicesUtil.isUserRecoverableError(status)) 
        GooglePlayServicesUtil.getErrorDialog(status, this,
                100).show();
     

新的方式是使用新的GoogleApiAvailability类,代码来自this answer:

private boolean checkPlayServices() 
    GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance();
    int result = googleAPI.isGooglePlayServicesAvailable(this);
    if(result != ConnectionResult.SUCCESS) 
        if(googleAPI.isUserResolvableError(result)) 
            googleAPI.getErrorDialog(this, result,
                    PLAY_SERVICES_RESOLUTION_REQUEST).show();
        

        return false;
    

    return true;

【讨论】:

非常感谢。第一个选项对我有帮助,我希望第二个选项也不错,你能告诉我 PLAY_SERVICES_RESOLUTION_REQUEST 的值应该是多少? (我应该使用我的选择吗?) 啊,是的,这只是一个 int 常量,由您选择。您也可以像第一个示例一样使用 100。

以上是关于无法在 Android 的地图上添加标记的主要内容,如果未能解决你的问题,请参考以下文章

通过触摸或点击在 Android 谷歌地图上添加标记

无法在谷歌地图android上动态设置多个标记

无法单击标记 - 谷歌地图集群Android,无法在谷歌地图中显示信息窗口

标记未在 Android 中的地图上显示

如何在 Android 上的 Google 地图上的标记旁边显示标签?

如何在谷歌地图android上设置多个标记?