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
确保 location
、lat
和 lon
在使用 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.
希望对您有所帮助!
我正在 android 工作室使用 google 地图。问题是当我在 onLocationChanged 之外访问 DriverLatLng
@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
确保 location
、lat
和 lon
在使用 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.
希望对您有所帮助!