J'ai un problème avec mon application. Mon application me lance une exception NullPointerException quand j'essaie d'obtenir ma position GPS, j'ai initié un gestionnaire de localisation et un écouteur de localisation. Le contexte est le contexte de MainAplication, qui a été importée précédemmentAndroid GPS NullpointerException
Mon code:
mLocationManager=(LocationManager)MainActivity.context.getSystemService(Context.LOCATION_SERVICE);
//mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 15000, 0, loclistener);
if(mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)==true){
//skt.MostrarToast(MainActivity.context, "GPS Habilitado...");
Log.i("Manada3", "GPS habilitado");
gpsEn=true;
MainActivity.looperStatus=true;
}else{
//skt.MostrarToast(MainActivity.context, "GPS Deshabilitado...");
//skt.MostrarToast(MainActivity.context, "Favor habilitar GPS...");
Log.i("Manada3", "GPS Deshabilitado");
Toast.makeText(getBaseContext(), "GPS DESHABILITADO",Toast.LENGTH_SHORT).show();
gpsEn=false;
MainActivity.looperStatus=false;
}
if(gpsEn==true){
//locLatitud=mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
//Log.i("Manada3", "locLatitud:"+locLatitud);
//mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, loclistener);
loclistener=new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.i("Manada3", "onLocationChanged 1");
if(MainActivity.looperStatus==false){
mLocationManager.removeUpdates(loclistener);
MainActivity.looperStatus=false;
}
// TODO Auto-generated method stub
Log.i("Manada3","GPSLoggerService.onLocationChanged()");
locLatitud2 = location.getLatitude();
locLongitud2 = location.getLongitude();
st_latitud=String.valueOf(locLatitud2);
st_longitud=String.valueOf(locLongitud2);
Log.i("Manada3", "Coordenadas:"+st_latitud+" "+st_longitud);
//soquet.ans2.notify();
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
Log.i("Manada3","Provider Disabled");
stopSelf();
//Looper.myLooper().quit();
loclistener=null;
}
@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub
Log.i("Manada3","Provider Enabled");
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
Log.i("Manada3","Status Changed");
}
};
if(mLocationManager==null){
mLocationManager=(LocationManager)MainActivity.context.getSystemService(Context.LOCATION_SERVICE);
}
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 15000, 0, loclistener,Looper.getMainLooper());
locLatitud2 = locLatitud.getLatitude();
locLongitud2 = locLatitud.getLongitude();
Log.i("Manada3", "Coordenadas:"+locLatitud2+" "+locLongitud2);
}else{
Log.i("Manada3","Error 300");
}
}
Mon Logcat info:
07-28 13:05:26.678: E/AndroidRuntime(5138): FATAL EXCEPTION: main
07-28 13:05:26.678: E/AndroidRuntime(5138): java.lang.NullPointerException
07-28 13:05:26.678: E/AndroidRuntime(5138): at com.example.manada4.PruebaService.startLoggingService(PruebaService.java:222)
07-28 13:05:26.678: E/AndroidRuntime(5138): at com.example.manada4.PruebaService.access$0(PruebaService.java:148)
07-28 13:05:26.678: E/AndroidRuntime(5138): at com.example.manada4.PruebaService$IncomingHandler.handleMessage(PruebaService.java:86)
07-28 13:05:26.678: E/AndroidRuntime(5138): at android.os.Handler.dispatchMessage(Handler.java:99)
07-28 13:05:26.678: E/AndroidRuntime(5138): at android.os.Looper.loop(Looper.java:137)
07-28 13:05:26.678: E/AndroidRuntime(5138): at android.app.ActivityThread.main(ActivityThread.java:4921)
07-28 13:05:26.678: E/AndroidRuntime(5138): at java.lang.reflect.Method.invokeNative(Native Method)
07-28 13:05:26.678: E/AndroidRuntime(5138): at java.lang.reflect.Method.invoke(Method.java:511)
07-28 13:05:26.678: E/AndroidRuntime(5138): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
07-28 13:05:26.678: E/AndroidRuntime(5138): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
07-28 13:05:26.678: E/AndroidRuntime(5138): at dalvik.system.NativeStart.main(Native Method)
Quelle est la ligne 222 dans 'PruebaService.java'? –
Le PruebaService.java est un service pour envelopper la connexion GPS. – volivares
Oui, cela peut être, mais il semble se bloquer sur la ligne 222 dans ce fichier afin de voir qui est comme ça serait utile. –