I’ve singled out my problem to a few lines of code
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 5.0f, this);
lat = location.getLatitude();
lng = location.getLongitude();
//lat = new Double(40.431682);
//lng = new Double(-74.2021819);
pLocation = new GeoPoint((int)(lat * 1000000), (int)(lng * 1000000));
My onLocationChanged if you were wondering
public void onLocationChanged(Location location) {
if (location != null) {
lat = location.getLatitude();
lng = location.getLongitude();
pLocation = new GeoPoint((int)(lat * 1000000), (int)(lng * 1000000));
}
}
My application crashes if I try to get the LastKnownLocation
But it works fine if I feed it a Location manually
I have no idea currently whats wrong
First, whenever you get a crash, use
adb logcat, DDMS, or the DDMS perspective in Eclipse to get the Java stack trace associated with the crash. In this case, I suspect you will find that you have aNullPointerExceptionwhen attempting to use yourlocationobject.You cannot use
getLastKnownLocation()until well after you callrequestLocationUpdates(), particularly for GPS. It may take tens of seconds for GPS to start providing fixes.Please alter your code to eliminate your use of
getLastKnownLocation()and just use the logic needing the location already in youronLocationChanged()method. At minimum, look for anulllocationobject and don’t try to use it.