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

Unable to add marker on map in Android

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

GooglePlayServicesUtil: Google Play services out of date. Requires 8298000 but found 6599036

应用程序在下一行崩溃。

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

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

谢谢

Google Play services out of date. Requires 8298000 but found 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'
    }

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

您的应用程序中应该有代码提示用户升级 Google Play 服务,如果他们没有您的应用程序要求的最低版本。 现在已弃用的旧方法是使用 GooglePlayServicesUtil:

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

新的方法是使用新的GoogleApiAvailability class, code from 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;
}