Я пытаюсь получить разницу между двумя местоположениями, которые я взял из gps, всякий раз, когда я нажимаю кнопку, чтобы перейти в мою MapsActivity, я получаю сбой с этой ошибкой
Attempt to invoke virtual method 'com.google.android.gms.maps.model.Marker com.google.android.gms.maps.GoogleMap.addMarker(com.google.android.gms.maps.model.MarkerOptions)' on a null object reference
И когда я комментирую код, который проверяет разницу в расстоянии, он работает нормально, я не понимаю связи между параметрами маркера и DistanceTo. Вот мой код (имейте в виду, что все работает нормально, просто DistanceTo не работает)
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
//get the latitude and longitude from the location
double latitude = location.getLatitude();
double longitude = location.getLongitude();
//get the location name from latitude and longitude
Geocoder geocoder = new Geocoder(getApplicationContext());
try {
if (location != null)
// this gives address list from the maps, not important and commented
{
List<Address> addresses =
geocoder.getFromLocation(latitude, longitude, 1);
// Marker options where the issue occurs
//String result = addresses.get(0).getSubLocality()+":";
//result += addresses.get(0).getLocality()+":";
// result += addresses.get(0).getCountryCode();
LatLng latLng = new LatLng(latitude, longitude);
mMap.addMarker(new MarkerOptions().position(latLng).title("Marker Title"));
mMap.setMaxZoomPreference(20);
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
}
} catch (IOException e) {
e.printStackTrace();
}
//Where it checks for the locations and the distance between them
if (LocationA == null) {
LocationA = location;
}
LocationB = location;
LocationA = LocationB;
DiffernceInDistance = LocationA.distanceTo(LocationB);
}
Код, в котором я сделал карту
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
if (ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
buildGoogleApiClient();
mMap.setMyLocationEnabled(true);
}
else {
buildGoogleApiClient();
mMap.setMyLocationEnabled(true);
}
}
не могли бы вы расширить фрагмент, указав свою декларацию / инициализацию mMap, пожалуйста?
Добавлен фрагмент, в котором я сделал mMap




Проблема заключалась в том, что я запрашивал местоположения и одновременно накладывал маркер, поэтому маркеры не могли загружаться в местоположение, чтобы решить эту проблему, я прокомментировал, он больше не вылетает, но это не решает мою основную проблему (DistanceTo не работает, но это не причина, по которой я написал этот пост, поэтому я больше не буду просить помощи, спасибо)
mMap.addMarker(new MarkerOptions().position(latLng).title("Marker Title"));
Вы можете получать обновления местоположения перед, ваша карта готова, поэтому вам необходимо это учесть.
мне кажется, что
mMapне инстанцируется, а значит, иnull.