2012-02-01 7 views
7

Ho ricevuto questo errore dai registri utente su un'app per Android che ho creato. Non sono stato in grado di replicare l'errore fino ad ora. Qualsiasi aiuto sarebbe estremamente apprezzato.Errore di runtime - java.lang.IllegalArgumentException: provider = gps

L'errore è:

java.lang.IllegalArgumentException: provider=gps 
at android.os.Parcel.readException(Parcel.java:1326) 
at android.os.Parcel.readException(Parcel.java:1276) 
at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:646) 
at android.location.LocationManager._requestLocationUpdates(LocationManager.java:582) 
at android.location.LocationManager.requestLocationUpdates(LocationManager.java:446) 
at com.myApp.service.DeviceManager$7.handleMessage(DeviceManager.java:470) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3835) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641) 
at dalvik.system.NativeStart.main(Native Method) 

La posizione devicemanager si riferisce è:

private final Handler uihandler = new Handler() { 

@Override 
     public void handleMessage(Message msg) { 
      switch (msg.what) { 
       case MSG_TOAST: 
        Toast.makeText(DeviceManager.this, msg.arg1, Toast.LENGTH_SHORT).show(); 
        break; 

       case MSG_ENABLE_LOCATION: 
        mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 1,DeviceManager.this); 
        mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 
          60000, 1, DeviceManager.this); 
        break; 

       case MSG_DISABLE_LOCATION: 
        mLocationManager.removeUpdates(DeviceManager.this); 
        break; 

       case MSG_STOP_SELF: 
        break; 
      } 
     } 

    }; 

risposta

7

Ci scusiamo dimenticato di pubblicare la soluzione. Il problema è stato causato da una forza dell'utente che ha chiuso l'app nel mezzo di un aggiornamento di posizione. Niente che possiamo fare al riguardo!

+0

mLocationManager.removeAggiornamenti in onPause non ha funzionato? Le cose non dovrebbero mai bloccarsi durante la chiusura delle app ... –

1

IllegalArgumentException se provider è nullo o non esiste. Assicurarsi che il provider GPS sia abilitato.

Hai controllato questo tutorial? Hai aggiunto il seguente file manifest di entrata?

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

Sì grazie l'avevo già incluso nel manifest. Metto ACCESS_FINE_LOCATION poiché copre sia i permessi di rete che quelli GPS in uno. Cosa intendi con "assicurati che il provider GPS sia abilitato"? Grazie! –

+0

Abilita il GPS sul telefono se non è abilitato. – kosa

+0

Sono abbastanza sicuro che può funzionare senza GPS abilitato poiché abbiamo anche installato LocationManager.NETWORK_PROVIDER. Grazie per la risposta. Avete altre idee su cosa potrebbe causarlo? Ho ricevuto l'errore da uno dei nostri utenti, quindi sto solo cercando di capire cosa potrebbe averlo causato. –

Problemi correlati