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

时间:2016-02-02 08:18:23

标签: android google-maps-markers android-gps

我在启动mapActivity时遇到此异常。

  

GooglePlayServicesUtil:Google Play服务已过期。需要   8298000但发现6599036

和App崩溃在下一行。

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

注意:应用程序在4.3和5.0.1版本上运行正常但在4.4.2中遇到此问题。任何解决方案?

由于

2 个答案:

答案 0 :(得分: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 :(得分:0)

这是一个运行时错误,当设备没有至少与您的应用编译的相同版本的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;
}