基本的 Google Maps Android,2 个与 PERMISSIONS 相关的小错误
Posted
技术标签:
【中文标题】基本的 Google Maps Android,2 个与 PERMISSIONS 相关的小错误【英文标题】:Basic Google Maps Android, 2 small errors with PERMISSIONS 【发布时间】:2017-03-15 04:33:48 【问题描述】:尊敬的社区,我正在学习 android 中的谷歌地图集成,并且已经了解了很多东西,有权限,以及使用最新的 GoogleApiAvailability,但仍然面临 2 个错误 我无法解决。我在public boolean ServicesOK()
方法中得到Cannot Resolve Method isUserRecoverableError(int)
和non-static method getErrorDialog cannot be referenced from a static context in the end of code
。
以下是 Java 代码:(如果需要其他任何内容,请告诉我,以便我可以正确使用 Android Google Maps 概念进行指导:))
package com.example.testmap;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback
private static final int ERROR_DIALOG_REQUEST = 9901;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
if(ServicesOK())
Toast.makeText(this, "Can't connect to mapping services", Toast.LENGTH_SHORT).show();
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
@Override
public void onMapReady(GoogleMap googleMap)
GoogleMap mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
public boolean ServicesOK()
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
int isAvailable = googleApiAvailability.isGooglePlayServicesAvailable(this);
if(isAvailable== ConnectionResult.SUCCESS)
return true;
else if(GoogleApiAvailability.isUserRecoverableError(isAvailable))
Dialog dialog;
dialog= GoogleApiAvailability.getErrorDialog(isAvailable, this, ERROR_DIALOG_REQUEST);
dialog.show();
else
Toast.makeText(this, "Can't connect to mapping services", Toast.LENGTH_SHORT).show();
return false;
【问题讨论】:
【参考方案1】:isUserRecoverableError
方法来自GooglePlayServicesUtil 而不是来自GoogleApiAvailability
。但正如您在文档中看到的那样,此方法已被弃用,您现在应该改用 GoogleApiAvailability.getInstance().isUserResolvableError()
对于第二个错误,您尝试访问getErrorDialog
,但这不是静态方法。你应该改用GoogleApiAvailability.getInstance().getErrorDialog
。
【讨论】:
.getInstance() 对我来说就像一个魅力。非常感谢您清除我的概念先生:)以上是关于基本的 Google Maps Android,2 个与 PERMISSIONS 相关的小错误的主要内容,如果未能解决你的问题,请参考以下文章
import com.google.android.maps.geopoint 无法解析
在 HAXM x86 模拟器上安装 Google 设置(Google Maps SDK)
使用 google play-services-maps 11.6.2 的 Android Studio Gradle 同步错误
无法通过 gradle 导入 com.google.maps.android:android-maps-utils
Google Maps V2 在 android 2.2 上显示空白屏幕
Android studio v0.3.2, gradle, google maps v2.0 找不到类“com.google.android.gms.maps.MapFragment