2011-08-18 1 views
44

Tôi có một vấn đề nhỏ với geocoder để có được vĩ độ và lontitude từ một địa chỉ:Dịch vụ không sẵn - Geocoder Android

Đây là mã của tôi:

for (Garage g : XMLGarage) { 
List<Address> address; 
address = coder.getFromLocationName(
g.getAddress(), 5); 
if (address != null) { 
Address location = address.get(0); 
g.setLatitude(location.getLatitude()); 
g.setLongitude(location.getLongitude()); 
... 

Lỗi này là:

08-18 14:28:56.026: WARN/System.err(359): java.io.IOException: Service not Available 
08-18 14:28:56.026: WARN/System.err(359):  at 
android.location.Geocoder.getFromLocationName(Geocoder.java:178) 
08-18 14:28:56.026: WARN/System.err(359):  at 
com.amt.android.garage.Garage.postData(Garage.java:269) 
08-18 14:28:56.026: WARN/System.err(359):  at 
com.amt.android.garage.GarageForm$2.onClick(GarageForm.java:86) 
08-18 14:28:56.026: WARN/System.err(359):  at 
android.view.View.performClick(View.java:2485) 
08-18 14:28:56.026: WARN/System.err(359):  at 
android.view.View$PerformClick.run(View.java:9080) 
08-18 14:28:56.036: WARN/System.err(359):  at 
android.os.Handler.handleCallback(Handler.java:587) 
08-18 14:28:56.036: WARN/System.err(359):  at 
android.os.Handler.dispatchMessage(Handler.java:92) 
08-18 14:28:56.036: WARN/System.err(359):  at 
android.os.Looper.loop(Looper.java:130) 
08-18 14:28:56.036: WARN/System.err(359):  at 
android.app.ActivityThread.main(ActivityThread.java:3683) 
08-18 14:28:56.036: WARN/System.err(359):  at 
java.lang.reflect.Method.invokeNative(Native Method) 
08-18 14:28:56.036: WARN/System.err(359):  at 
java.lang.reflect.Method.invoke(Method.java:507) 
08-18 14:28:56.036: WARN/System.err(359):  at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-18 14:28:56.046: WARN/System.err(359):  at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-18 14:28:56.046: WARN/System.err(359):  at dalvik.system.NativeStart.main(Native  
Method) 

Cảm ơn và kính trọng, Anass

+0

Tôi muốn chỉ ra rằng mặc dù câu hỏi này được đánh dấu là trùng lặp (câu trả lời đúng), câu trả lời hàng đầu được đưa ra cho câu hỏi này là một giải pháp hợp lệ, có thể mà câu hỏi khác không cung cấp. – d60402

Trả lời

13

Bạn sẽ gặp lỗi này đôi khi nếu GeoCoding provi der không thành công và không thể mã hóa địa lý vị trí của bạn.

Xem những bài viết có liên quan:

Geocoder.getFromLocation throws Exception

Geocoder.getFromLocation throws IOException on Android emulator

Nếu đây không phải là trường hợp, chắc chắn rằng bạn có sự cho phép Internet ở Manifest của bạn:

<uses-permission android:name="android.permission.INTERNET" /> 
+0

Dịch vụ không khả dụng - Geocoder Android khi tôi nhận được lỗi này trong một số roms nấu chín tôi đã viết thư viện này tôi hy vọng có thể hữu ích. https://github.com/dnocode/gapis – dnocode

98

Có một sự cố gần đây với thiết bị Android và trình mã hóa địa lý không hoạt động: http://code.google.com/p/android/issues/detail?id=38009

Khởi động lại dường như khắc phục sự cố

+87

đề xuất khởi động lại là một giải pháp khủng khiếp. Thậm chí khủng khiếp hơn của một giải pháp khi đó là một trong những chính xác. Đã làm cho tôi. – djunod

+0

Chúng tôi đã có trên 4 thiết bị với các phiên bản Android khác nhau. Chưa bao giờ thấy vấn đề này sau đó. (có thể liên quan đến cập nhật dịch vụ google play) – Somatik

+0

Wowwww !!! Làm việc cho tôi quá ... Tiếp theo, cách hoạt động mà không cần thiết bị 'Khởi động lại'? – HATCHA

0

Thử cập nhật Vị trí trước tiên. Giống như bên dưới

locationManager.requestLocationUpdates(bestProvider, 20000, 1, this); 

tham chiếu here.