2012-02-01 15 views
7

Dostałem ten błąd z logów użytkownika na utworzonej przeze mnie aplikacji dla systemu Android. Nie udało mi się odtworzyć błędu do tej pory. Każda pomoc byłaby niezwykle ceniona.Runtime Error - java.lang.IllegalArgumentException: provider = gps

Błąd jest:

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) 

Lokalizacja devicemanager to dotyczy to:

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

    }; 

Odpowiedz

7

Niestety zapomniałem opublikować rozwiązanie. Problem polegał na tym, że użytkownik zamknął aplikację w trakcie aktualizacji lokalizacji. Nic nie możemy na to poradzić!

+0

mLocationManager.removeUpdates w onPause nie działa? Rzeczy nie powinny się zawieszać podczas zamykania aplikacji ... –

1

IllegalArgumentException jeśli dostawca jest null lub nie istnieje. Upewnij się, że włączono dostawcę GPS.

Czy sprawdziłeś to tutorial? Czy dodałeś następujący plik manifestu wpisu?

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

Tak, dziękuję, już zawarłem to w manifeście. Ustawiłem ACCESS_FINE_LOCATION, ponieważ obejmuje ona zarówno uprawnienia sieciowe, jak i GPS w jednym. Co masz na myśli przez "upewnij się, że dostawca GPS jest włączony"? dzięki! –

+0

Włącz GPS w telefonie, jeśli nie jest włączony. – kosa

+0

Jestem prawie pewien, że może działać bez włączonego GPS, ponieważ mamy włączoną funkcję LocationManager.NETWORK_PROVIDER. Dzięki za odpowiedzi. Czy masz jakieś inne pomysły, które mogą być przyczyną? Dostałem błąd od jednego z naszych użytkowników, więc próbuję pojąć, co mogło to spowodować. –

Powiązane problemy