我有我的應用程序一個GPS的錯誤,當我試圖讓我的當前位置,通過GPS或通過網絡錯誤與GPS的Android
private static LocationManager lm;
private static LocationListener locationListener;
private static Location posicion;
private double latitud;
private double longitud;
posicion = ObtenPosicion();
latitud = posicion.getLatitude();
longitud= posicion.getLongitude();
//Me centro en el mapa
final GeoPoint yo = new GeoPoint((int)(latitud),(int)(longitud));
public Location ObtenPosicion(){
if (lm == null)
{
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocListener();
if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
lm.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
LOCATION_UPDATE_TIME,
LOCATION_UPDATE_DISTANCE,
locationListener);
posicion = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
if (lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
{
lm.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
LOCATION_UPDATE_TIME,
LOCATION_UPDATE_DISTANCE,
locationListener);
posicion = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
}
return posicion;
}
private class LocListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc) {
posicion.set(loc);
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
}
public static Location getCurrentLocation()
{
return posicion;
}
public void stopLocationListening()
{
if (lm != null)
lm.removeUpdates(locationListener);
}
的錯誤是在一條線上一個NullPointerException:
12-06 17:04:25.418: E/AndroidRuntime(4744): java.lang.NullPointerException
12-06 17:04:25.418: E/AndroidRuntime(4744): at com.rbrlnx.lugares.editarLugar$LocListener.onLocationChanged(editarLugar.java:215)
我試着用不同的代碼,但它不可能..
如果這是您的真實代碼,請嘗試初始化onCreate方法中的「posicion」對象而不是Class體。 – Cata