我在启动mapActivity时遇到此异常。
GooglePlayServicesUtil:Google Play服务已过期。需要 8298000但发现6599036
和App崩溃在下一行。
final Marker marker = mMap.addMarker(new MarkerOptions().position(location);
注意:应用程序在4.3和5.0.1版本上运行正常但在4.4.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;
}