LatLng 给出空指针异常

LatLng gives null pointer exception

我正在 android 工作室使用 google 地图。问题是当我在 onLocationChanged 之外访问 DriverLatLng 时,它给了我空指针异常。 我的 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));
}

现在,当我在其他任何地方使用 DriverLatLng 时,我得到

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.android.gms.maps.model.LatLng.toString()' on a null object reference

确保 locationlatlon 在使用 DriverLatLng 之前不为空。

试试这个:

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

另请注意,GoogleApiClient 已弃用。您需要使用 GoogleApi. Check out this post.

希望对您有所帮助!