LatLng дает исключение нулевого указателя - PullRequest
0 голосов
/ 06 марта 2020

Я работаю с Google Maps в android студии. Проблема в том, что когда я получаю доступ к DriverLatLng LatLng object за пределами 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));
}

Теперь, когда я использую 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

1 Ответ

1 голос
/ 09 марта 2020

Прежде чем использовать DriverLatLng.

, убедитесь, что 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));
    }
}

Также обратите внимание, что GoogleApiClient устарел. Вам необходимо использовать GoogleApi . Проверьте этот пост .

Надеюсь, это поможет!

...