Получение java.lang.NullPointerException в googleMap.setMyLocationEnabled (true) Android Studio - PullRequest
0 голосов
/ 07 декабря 2018

Итак, я делаю проект, который мне нужен только для определения местоположения, мне не нужно показывать карту или что-то в этом роде.Я создал GoogleMap mGoogleMap; в начале урока.Когда я запрашиваю у пользователя разрешение на определение местоположения и курса, я получаю следующий код:

   public class Distance extends Activity implements Runnable {
    //...
    GoogleMap mGoogleMap;
    protected LocationManager locationManager;
    Location location;
    //...
     public void onCreate(Bundle savedInstanceState) {
    //...
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) ==
                    PackageManager.PERMISSION_GRANTED &&
                    ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) ==
                            PackageManager.PERMISSION_GRANTED) {

                mGoogleMap.setMyLocationEnabled(true);
                mGoogleMap.getUiSettings().setMyLocationButtonEnabled(true);

                locationManager.requestLocationUpdates(
                        LocationManager.GPS_PROVIDER,
                        MINIMUM_TIME_BETWEEN_UPDATES,
                        MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
                        new MyLocationListener()
                );
            } else {
                ActivityCompat.requestPermissions(this, new String[]{
                                Manifest.permission.ACCESS_FINE_LOCATION,
                                Manifest.permission.ACCESS_COARSE_LOCATION},
                        TAG_CODE_PERMISSION_LOCATION);
            }
//...

При первом запуске приложения оно работало, но в другое время получала эту ошибку:

Причинаby: java.lang.NullPointerException: попытка вызвать виртуальный метод 'void com.google.android.gms.maps.GoogleMap.setMyLocationEnabled (boolean)' для ссылки на пустой объект.

Эта ошибка в строкекоторые имеют: mGoogleMap.setMyLocationEnabled(true);

Я знаю, что мне нужно инициализировать объект googleMap, потому что он пуст, но я не знаю как.Помощь

1 Ответ

0 голосов
/ 07 декабря 2018

Инициируйте карту следующим образом:

 @Override
public void onMapReady(GoogleMap googleMap) {
    mGoogleMap = googleMap;

    // Add a marker in Sydney, Australia, and move the camera.
    LatLng sydney = new LatLng(-34, 151);
    mGoogleMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...