Android Google Map getMapAsync()NullPointerException
将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)”` 这是密码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
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想知道它对你有帮助。