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 a NullPointerException when attempting to use your location object.
You cannot use getLastKnownLocation() until well after you call requestLocationUpdates(), 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 your onLocationChanged() method. At minimum, look for a null location object and don't try to use it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With