Служба недоступна - геокодер Android

У меня есть небольшая проблема с геокодером, чтобы получить широту и долготу с адреса:

Это мой код:

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());
...

Ошибка:

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)

person Anass    schedule 18.08.2011    source источник
comment
Я хотел бы отметить, что, хотя этот вопрос помечен как дубликат (что правильно), лучший ответ, данный на этот вопрос, является допустимым возможным решением, которое другой вопрос не предлагает.   -  person d60402    schedule 16.04.2013
comment
Пожалуйста, сначала перезагрузите устройство, этого может быть достаточно, чтобы решить вашу проблему.   -  person Neo    schedule 17.03.2018


Ответы (3)


Недавно возникла проблема с устройствами Android, и геокодер не работает: http://code.google.com/p/android/issues/detail?id=38009

Перезагрузка вроде решает проблему

person Somatik    schedule 13.12.2012
comment
предлагать перезагрузку - ужасное решение. Еще более ужасное решение, когда оно правильное. Работал на меня. - person djunod; 18.12.2012
comment
У нас такое было на 4 устройствах с разными версиями андроида. Никогда не видел эту проблему после. (вероятно, связано с обновлением сервисов Google Play) - person Somatik; 19.12.2012
comment
Вау!!! У меня тоже работает... Далее, как это работает без 'Reboot' устройства? - person HATCHA; 10.01.2013
comment
Была такая проблема с 2 планшетами. Обновился с помощью сервисов Google Play, и геокодер не работал. Перезагрузка устранила проблему. Давай Гугл... - person Patrick; 30.01.2013
comment
Перезагрузка устройства работает ... это должно быть ошибка Android - person Kasas; 05.02.2013
comment
Невероятный! Перезагрузка Samsung Galaxy Tab 2 была решением. Большое спасибо! - person Pascal; 27.03.2013
comment
перезагрузка решает проблему, но через некоторое время проблема возвращается. Кто-нибудь может помочь? - person Pascal; 02.04.2013
comment
ОК.. Я просто пытаюсь отредактировать сообщение, но мое редактирование было отклонено. Я просто хочу поделиться своим опытом: перезагрузка решает проблему только.. временно. Баг возвращается снова. В качестве альтернативы можно использовать Google Map API. Я сделал полный рабочий пример доступным здесь: stackoverflow.com/questions/9272918/ - person Pascal; 07.04.2013
comment
Да решено. Но почему это происходит? Я имею в виду, что это может напрямую влиять на приложение и косвенно на разработчика Android. Даже это баг андроида :( - person Husnain Iqbal; 03.07.2013
comment
Чтобы избежать перезагрузки и решить проблему с геокодером, служба недоступна, вам необходимо установить цель сборки проекта на API 16. В Eclipse: щелкните правой кнопкой мыши проект -> Путь сборки -> Настроить путь сборки -> Android -> Цель сборки проекта. - person Umberto; 08.07.2013
comment
лол странно работал для меня :) - person Meriam; 14.08.2013
comment
Я думаю, что это глупое решение, но оно сработало! - person Yohanes AI; 11.08.2014
comment
Я должен быть поражен, что в 2016 году я все еще вижу эту проблему на устройствах... - person Richard Le Mesurier; 09.03.2016
comment
@RichardLeMesurier 2017 здесь ... это все еще может произойти с целью API 25 - person alexgophermix; 16.02.2017

Вы будете получать эту ошибку время от времени, если провайдер геокодирования выйдет из строя и не сможет геокодировать ваше местоположение.

Смотрите эти соответствующие сообщения:

Geocoder.getFromLocation выдает исключение

Geocoder.getFromLocation выдает IOException на эмуляторе Android

Если это не так, убедитесь, что у вас есть разрешение на доступ к Интернету в вашем манифесте:

<uses-permission android:name="android.permission.INTERNET" />
person hooked82    schedule 18.08.2011
comment
Служба недоступна - Geocoder Android, когда я получаю эту ошибку в некоторых приготовленных ромах, я написал эту библиотеку, надеюсь, она может быть полезна. github.com/dnocode/gapis - person dnocode; 15.03.2015

Попробуйте сначала обновить местоположение. Как ниже

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

см. здесь .

person pretty angela    schedule 31.01.2013