2014-01-11 3 views
3

Я использую геокодер, и он отлично работал на моем устройстве, но не работал на эмуляторах, проверенных на 2.2 и 4.2.2, не работал;Работает ли геокодер на эмуляторах

это мой код:

Geocoder myLocation = new Geocoder(AzanTime.this, Locale.getDefault()); 
       List<Address> myList=null; 
       try { 
        myList = myLocation.getFromLocation(latitude,longitude, 1); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       Address address = (Address) myList.get(0); 
       String addressStr = ""; 
       if(address.getAddressLine(0)!=null){ 
        addressStr += address.getAddressLine(0); 

       } 

И LogCat:

01-11 09:31:07.573: E/AndroidRuntime(788): FATAL EXCEPTION: main 
01-11 09:31:07.573: E/AndroidRuntime(788): java.lang.RuntimeException: Unable to start activity ComponentInfo{amina.myhomebusiness.IslamicApps.FortressOfTheMuslimExplanation/amina.myhomebusiness.IslamicApps.FortressOfTheMuslimExplanation.AzanTime}: java.lang.IllegalArgumentException: provider doesn't exisit: null 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.os.Looper.loop(Looper.java:137) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.app.ActivityThread.main(ActivityThread.java:5041) 
01-11 09:31:07.573: E/AndroidRuntime(788): at java.lang.reflect.Method.invokeNative(Native Method) 
01-11 09:31:07.573: E/AndroidRuntime(788): at java.lang.reflect.Method.invoke(Method.java:511) 
01-11 09:31:07.573: E/AndroidRuntime(788): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
01-11 09:31:07.573: E/AndroidRuntime(788): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
01-11 09:31:07.573: E/AndroidRuntime(788): at dalvik.system.NativeStart.main(Native Method) 
01-11 09:31:07.573: E/AndroidRuntime(788): Caused by: java.lang.IllegalArgumentException: provider doesn't exisit: null 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.os.Parcel.readException(Parcel.java:1429) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.os.Parcel.readException(Parcel.java:1379) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:538) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.location.LocationManager.requestLocationUpdates(LocationManager.java:836) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.location.LocationManager.requestLocationUpdates(LocationManager.java:430) 

01-11 09:31:07.573: E/AndroidRuntime(788): at android.app.Activity.performCreate(Activity.java:5104) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
01-11 09:31:07.573: E/AndroidRuntime(788): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
01-11 09:31:07.573: E/AndroidRuntime(788): ... 11 more 
+1

Не работает в некоторых версиях. Моя память немного туманна по этому поводу, но я думаю, что 2.1 в порядке – NickT

ответ

3

На эмуляторы не установлен Geocoder. Accroding к Geocoder ссылке

Класс Geocoder требует обслуживаний серверных, не включенные в андроиде рамок основных. Методы запросов Geocoder возвратят пустой список, если на платформе нет бэкэнд-сервиса. Используйте метод isPresent(), чтобы определить, существует ли реализация Geocoder.

Вы должны быть проверены

Geocoder.isPresent() 

Прежде чем обращаться к API. . Более надежно использовать свою собственную реализацию. Проверьте этот ответ для моей реализации. problems with android.location.geocoder

1

Пожалуйста, проверьте эту ссылку. Geocoder api в android имеет некоторые ошибки. поэтому лучше использовать Google geocode api. Проверьте эту ссылку Android; Geocoder, why do I get "the service is not available"?

+0

Большое спасибо, но ур ответ, но другой ответ был лучше;) –

Смежные вопросы