Gần đây chúng tôi đã thử nghiệm ứng dụng của chúng tôi chống lại API Android 14 và 15. Chúng tôi bắt đầu phát triển nhắm mục tiêu tối thiểu SKD phiên bản 8 và không bao gồm máy tính bảng (3.x).
Với mọi thứ 2.x hoạt động tốt nhưng khi chạy ứng dụng trên một droid 4.x nó đổ vỡ tại thời điểm chúng tôi đang có được vị trí của người dùng.IllegalArgumentException được ném bởi requestLocationUpdate()
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to create service java.lang.IllegalArgumentException: provider=network
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2263)
at android.app.ActivityThread.access$1600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: provider=network
at android.os.Parcel.readException(Parcel.java:1331)
at android.os.Parcel.readException(Parcel.java:1281)
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 package.name.LocationGetter.onCreate(LocationGetter.java:63)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2253)
...
Nguồn:
public void onCreate() {
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 300000, 500, locationListener);
super.onCreate();
}
Theo documentation một IAE được ném if provider or listener is null
. Tuy nhiên tôi đã ghi lại nhà cung cấp và người nghe. (sau này thông qua toString()) và chúng không rỗng.
Đến từ this question Tôi tìm thấy một open issue. Tuy nhiên tôi đã tự hỏi làm thế nào mọi người tự tin hơn với các yêu cầu của người dùng kem sandwich.
The tutorial Tôi biết sử dụng cùng một phương pháp được mô tả ở trên.
Tôi nghĩ rằng bạn nên làm cho 'siêu() 'cuộc gọi đầu tiên của bạn' onCreate()' ... Tôi sẽ cố gắng này :) –
Yeah, luôn phải vật lộn nơi để đặt nó. Dù sao - vấn đề vẫn còn tồn tại. – yoshi
Có cùng một vấn đề. Tôi tự hỏi nếu đó là một vấn đề giả lập hoặc cũng là một vấn đề thiết bị ICS thực –