2012-02-01 36 views
7

Recibí este error de los registros de usuario en una aplicación de Android que creé. No he podido replicar el error hasta el momento. Cualquier ayuda sería extremadamente apreciada.Error de tiempo de ejecución - java.lang.IllegalArgumentException: provider = gps

El error es:

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 ubicación DeviceManager se refiere a es:

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; 
      } 
     } 

    }; 

Respuesta

7

Lo sentimos, se olvidó de decir la solución. El problema se debió a que un usuario cerró la aplicación en medio de una actualización de ubicación. ¡Nada que podamos hacer al respecto!

+0

mLocationManager.removeUpdates en onPause no funcionó? Las cosas nunca deberían colgarse al cerrar aplicaciones ... –

1

IllegalArgumentException si el proveedor es nulo o no existe. Asegúrese de que el proveedor de GPS esté habilitado.

¿Has verificado esto tutorial? ¿Ha agregado el siguiente archivo de manifiesto de entrada?

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

Sí, gracias, ya había incluido eso en el manifiesto. Puse ACCESS_FINE_LOCATION ya que cubre tanto la red como los permisos de GPS en uno. ¿Qué quiere decir con "asegúrese de que el proveedor de GPS esté habilitado"? ¡Gracias! –

+0

Habilite el GPS en su teléfono si no está habilitado. – kosa

+0

Estoy bastante seguro de que se puede ejecutar sin GPS habilitado ya que también tenemos habilitado LocationManager.NETWORK_PROVIDER. Gracias por la respuesta. ¿Tiene alguna otra idea de lo que podría estar causando? Recibí el error de uno de nuestros usuarios, así que estoy tratando de descubrir qué pudo haberlo causado. –

Cuestiones relacionadas