Android Google Map getMapAsync()NullPointerException

Android Google Map getMapAsync()NullPointerException,android,google-maps,Android,Google Maps,将getMap()更改为getMapAsync()并在MapReadyCallback上实现后,我得到了错误NullPointerException 这是logcat 原因:java.lang.NullPointerException:尝试在pym.example.com.fypv2.callme.callme.onCreate(callme.java:117)上的空对象引用上调用虚拟方法“void com.google.android.gms.maps.GoogleMap.setMyLocat

将getMap()更改为getMapAsync()并在MapReadyCallback上实现后,我得到了错误NullPointerException

这是logcat

原因:java.lang.NullPointerException:尝试在pym.example.com.fypv2.callme.callme.onCreate(callme.java:117)上的空对象引用上调用虚拟方法“void com.google.android.gms.maps.GoogleMap.setMyLocationEnabled(boolean)”`

这是密码

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
        .findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

// Enabling MyLocation in Google Map
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    // TODO: Consider calling
    //    ActivityCompat#requestPermissions
    // here to request the missing permissions, and then overriding
    //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
    //                                          int[] grantResults)
    // to handle the case where the user grants the permission. See the documentation
    // for ActivityCompat#requestPermissions for more details.
    return;
}
mGoogleMap.setMyLocationEnabled(true);
那我就去吧

@Override
public void onMapReady(GoogleMap googleMap) {
    mGoogleMap = googleMap;
}

您需要调用
mGoogleMap.setMyLocationEnabled(true)onMapReady
中进行编码

按以下方式更改代码:

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);


    @Override
public void onMapReady(GoogleMap googleMap) {
    mGoogleMap = googleMap;
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            return;
        }
        mGoogleMap.setMyLocationEnabled(true);
}

您需要调用
mGoogleMap.setMyLocationEnabled(true)onMapReady
中进行编码

按以下方式更改代码:

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);


    @Override
public void onMapReady(GoogleMap googleMap) {
    mGoogleMap = googleMap;
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            return;
        }
        mGoogleMap.setMyLocationEnabled(true);
}

在哪里可以调用mGoogleMap.setMyLocationEnabled?OnCreate()?是的,在此之前,我在OnCreate()中调用它,但抛出一个NullPointerException。所以我调用OnMapReady然后问题解决在哪里调用mGoogleMap.setMyLocationEnabled?OnCreate()?是的,在此之前,我在OnCreate()中调用它,但抛出一个NullPointerException。所以我打电话给OnMapReady然后是problem solvedglade,想知道它对你有帮助。glade想知道它对你有帮助。