Как решить исключение нулевого указателя при получении широты или GPS? - PullRequest
2 голосов
/ 08 февраля 2010

Я пытаюсь получить ток долго, лат. Я получаю Nullpointer на LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    LocationListener myLocationListener = new CurrentLocationListener(); 
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, myLocationListener);
    Location currentLocation = locationManager.getLastKnownLocation("gps"); 
    Latitude = currentLocation.getLatitude();  ----->>> null pointer exception here
    Longitude = currentLocation.getLongitude();

public class CurrentLocationListener implements LocationListener{
    public void onLocationChanged(Location argLocation) {
    }
    public void onProviderDisabled(String provider) {
    }
    public void onProviderEnabled(String provider) {
    }
    public void onStatusChanged(String provider, int status, Bundle arg2) {
    }
} 

Мой файл манифеста

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

Ответы [ 4 ]

3 голосов
/ 08 февраля 2010

Обычно это потому, что нет последнего известного местоположения. Для принудительного получения местоположения вы можете зарегистрироваться для получения обновлений местоположения и подождать, или же вы можете запустить приложение google maps , получить местоположение с помощью Меню -> Мое местоположение , вернуться в свое приложение и узнать последние сведения. местоположение не должно быть нулевым.

1 голос
/ 17 февраля 2010
1 голос
/ 08 февраля 2010

Вид очевидного ...

Location currentLocation = locationManager.getLastKnownLocation("gps"); 

if (currentLocation != null)
{
    Latitude = currentLocation.getLatitude();
    Longitude = currentLocation.getLongitude();
}

Теперь о том, ПОЧЕМУ locationManager возвращает нулевые ссылки вместо фактической ссылки на местоположение ... Это трудно понять с помощью предоставленного кода. Может быть что угодно.

Редактировать: Ммм, похоже, может быть, у вас нет исправлений GPS .

1 голос
/ 08 февраля 2010

Вы установили правильные разрешения в файле манифеста? Что-то вроде:

<uses-permission 
    android:name="android.permission.ACCESS_FINE_LOCATION" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...