2015-04-14 2 views
0

Я пытаюсь добавить текущую метку местоположения в свое приложение Google Maps для Android в Android Studio.Значок Google maps (текущее местоположение) сбой приложения, как его исправить?

Мой код:

private void setUpMap() { 
Location location = null; 
LatLng loc = new LatLng(location.getLatitude(), location.getLongitude()); 
Marker marker; 
marker = mMap.addMarker(new MarkerOptions().position(new LatLng((location.getLatitude()), location.getLongitude())).title("Marker"));} 

Это вызывает мое приложение к сбою. Под есть ошибки, которые появились во время работы моего приложения:

http://postimg.org/image/qrxdo9dl5/full/

(я использовал postimage для загрузки большего размера снимок экрана)


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

private void setUpMap() { 
mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker")); 

Затем я попытался изменить местоположение «0,0» читать текущую широту и долготу и показать его на моем Google карта. Я изменил свой код на этот пост: How to get the current location in Google Maps Android API v2?

Я начинаю java, и любая помощь очень ценится. Большое спасибо за любую помощь.

+0

Как вы планируете получать достоверный объект «Местоположение»? В настоящее время вы просто объявляете 'location' и устанавливаете его в' null', следовательно, 'NullPointerException' –

ответ

0

Вы получаете исключение NullPointerException, потому что ваш объект местоположения установлен в null. В связанном ответе объект местоположения поступает из обратного вызова местоположения.

public void onMyLocationChange(Location location) // location object here 

Вы можете легко получить Расположение от вашей справки карты, как так

Location location = mMap.getMyLocation(); 

Однако этот метод является устаревшим и использование местоположения API рекомендуется. Чтобы получить расположение от API вы можете следовать этому руководству:

https://developer.android.com/training/location/retrieve-current.html

Вы строите GoogleApiClient, подключите его, а затем использовать его, чтобы получить место.

Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 
Смежные вопросы