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 LatLng提供空指针异常_Java_Android_Google Maps_Nullpointerexception_On Location Changed - Fatal编程技术网

Java LatLng提供空指针异常

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

我正在android studio上使用谷歌地图。问题是当我访问DriverLatLngoutside onLocationChanged时,它会给我空指针异常。 我的onLocationChanged方法如下:-

@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));
    }
}