问题
I got this error from the user logs on an android app I created. I have been unable to replicate the error thus far. Any help would be extremely appreciated.
The error is:
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)
The devicemanager location it refers to is:
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;
}
}
};
回答1:
Sorry forgot to post the solution. The problem ended up being due to a user force closing the app in the middle of a location update. Nothing we can do about that!
回答2:
IllegalArgumentException
if provider is null or doesn't exist. Make sure GPS provider enabled.
Did you check this tutorial? Have you added following entry manifest file?
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
来源:https://stackoverflow.com/questions/9088952/runtime-error-java-lang-illegalargumentexception-provider-gps