Java LatLng提供空指针异常
我正在android studio上使用谷歌地图。问题是当我访问DriverLatLngoutside onLocationChanged时,它会给我空指针异常。 我的onLocationChanged方法如下:-Java LatLng提供空指针异常,java,android,google-maps,nullpointerexception,on-location-changed,Java,Android,Google Maps,Nullpointerexception,On Location Changed,我正在android studio上使用谷歌地图。问题是当我访问DriverLatLngoutside onLocationChanged时,它会给我空指针异常。 我的onLocationChanged方法如下:- @Override public void onLocationChanged(Location location) { LastLocation = location; double lat = LastLocation.getLatitude(); dou
@Override
public void onLocationChanged(Location location) {
LastLocation = location;
double lat = LastLocation.getLatitude();
double lon = LastLocation.getLongitude();
DriverLatLng = new LatLng(lat,lon);
Log.v("data", DriverLatLng.toString());
mMap.moveCamera(CameraUpdateFactory.newLatLng(DriverLatLng));
mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
}
现在,当我在其他任何地方使用DriverLatling时
使用
driverlatng
之前,请确保location
、lat
和lon
不为空
试试这个:
@Override
public void onLocationChanged(Location location) {
LastLocation = location;
double lat = LastLocation.getLatitude();
double lon = LastLocation.getLongitude();
if(lat == null || lon == null){
Log.v("nulls", "lat and/or lon are null");
} else{
DriverLatLng = new LatLng(lat,lon);
Log.v("data", DriverLatLng.toString());
mMap.moveCamera(CameraUpdateFactory.newLatLng(DriverLatLng));
mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
}
}
另外,请注意,GoogleAppClient已被弃用。你需要使用。退房
希望这有帮助 也许你在调用onLocationChanged之前试图访问driverLatLng对象,因为如果你使用的是android emulator,并且它的位置没有改变,正如@Madonabulia所说,这可能是在初始化driverLatlngI之前造成的。我已经将时间间隔设置为1秒,所以在应用程序运行时,它在任何给定时刻都不能为null。我在添加了相关标签的真实设备上运行它
@Override
public void onLocationChanged(Location location) {
LastLocation = location;
double lat = LastLocation.getLatitude();
double lon = LastLocation.getLongitude();
if(lat == null || lon == null){
Log.v("nulls", "lat and/or lon are null");
} else{
DriverLatLng = new LatLng(lat,lon);
Log.v("data", DriverLatLng.toString());
mMap.moveCamera(CameraUpdateFactory.newLatLng(DriverLatLng));
mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
}
}