2013-07-28 4 views
0

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) 
+3

Quelle est la ligne 222 dans 'PruebaService.java'? –

+0

Le PruebaService.java est un service pour envelopper la connexion GPS. – volivares

+0

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. –

Répondre

1

Avez-vous ajouté des autorisations dans le fichier Manifest?

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

J'ai la permission. – volivares

Questions connexes