Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基本谷歌地图安卓,2个小错误和权限_Java_Android_Google Maps_Android Studio_Google Maps Api 3 - Fatal编程技术网

Java 基本谷歌地图安卓,2个小错误和权限

Java 基本谷歌地图安卓,2个小错误和权限,java,android,google-maps,android-studio,google-maps-api-3,Java,Android,Google Maps,Android Studio,Google Maps Api 3,尊敬的社区,我正在学习ANDROID中的谷歌地图集成,并且已经了解了很多东西,有权限,以及使用最新的GoogleAppAvailability,但仍然面临2个错误,我无法解决。我得到无法解析方法isUserRecoverableError(int)和非静态方法getErrorDialog无法从代码末尾的静态上下文引用处的公共布尔服务sok()方法。 以下是Java代码:(如果还需要什么,请告诉我,这样我就可以正确地使用Android谷歌地图概念:)) isUserRecoverableError

尊敬的社区,我正在学习ANDROID中的谷歌地图集成,并且已经了解了很多东西,有权限,以及使用最新的GoogleAppAvailability,但仍然面临2个错误,我无法解决。我得到
无法解析方法isUserRecoverableError(int)
非静态方法getErrorDialog无法从代码末尾的静态上下文引用
处的
公共布尔服务sok()
方法。 以下是Java代码:(如果还需要什么,请告诉我,这样我就可以正确地使用Android谷歌地图概念:))


isUserRecoverableError
方法来自非源于
GoogleAppAvailability
。但正如您在文档中看到的,此方法已被弃用,您现在应该改用
GoogleApiAvailability.getInstance().isUserResolvableError()

对于第二个错误,您试图访问
getErrorDialog
,但它不是静态方法。你应该改为
GoogleApiAvailability.getInstance().getErrorDialog

getInstance()对我来说就像一个魔咒。非常感谢您澄清我的概念,先生:)
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;
    }
}