Не удалось получить клиент фабрики подключений

#java #android

#java #Android

Вопрос:

все работает нормально, но проблема, когда я отображаю местоположение, ничего не происходит, я зарегистрировал свою карту Google и выполнил все инструкции здесь

http://code.google.com/intl/pl/android/add-ons/google-apis/mapkey.html

я вижу карту, я могу увеличивать и уменьшать масштаб, но когда я ищу местоположение, я получаю это в logcat

 05-01 12:59:35.512: ERROR/MapActivity(488): Couldn't get connection factory client
05-01 12:59:36.012: INFO/ActivityManager(70): Displayed TaskManager.com/.AddLocationMapActivity:  4s562ms
05-01 12:59:36.692: WARN/KeyCharacterMap(488): No keyboard for id 0
05-01 12:59:36.692: WARN/KeyCharacterMap(488): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
05-01 12:59:41.192: DEBUG/dalvikvm(238): GC_EXPLICIT freed 6K, 54% free 2543K/5511K, external 410K/517K, paused 77ms
05-01 12:59:46.352: DEBUG/dalvikvm(318): GC_EXPLICIT freed 6K, 54% free 2597K/5639K, external 410K/517K, paused 158ms
05-01 12:59:51.362: DEBUG/dalvikvm(352): GC_EXPLICIT freed <1K, 54% free 2539K/5511K, external 410K/517K, paused 144ms
05-01 12:59:54.262: WARN/System.err(488): java.io.IOException: Service not Available
05-01 12:59:54.272: WARN/System.err(488):     at android.location.Geocoder.getFromLocationName(Geocoder.java:178)
05-01 12:59:54.282: WARN/System.err(488):     at TaskManager.com.AddLocationMapActivity.mapCurrentLocation(AddLocationMapActivity.java:59)
05-01 12:59:54.282: WARN/System.err(488):     at TaskManager.com.AddLocationMapActivity$1.onClick(AddLocationMapActivity.java:49)
05-01 12:59:54.292: WARN/System.err(488):     at android.view.View.performClick(View.java:2485)
05-01 12:59:54.302: WARN/System.err(488):     at android.view.View$PerformClick.run(View.java:9080)
05-01 12:59:54.302: WARN/System.err(488):     at android.os.Handler.handleCallback(Handler.java:587)
05-01 12:59:54.332: WARN/System.err(488):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-01 12:59:54.332: WARN/System.err(488):     at android.os.Looper.loop(Looper.java:123)
05-01 12:59:54.342: WARN/System.err(488):     at android.app.ActivityThread.main(ActivityThread.java:3683)
05-01 12:59:54.342: WARN/System.err(488):     at java.lang.reflect.Method.invokeNative(Native Method)
05-01 12:59:54.352: WARN/System.err(488):     at java.lang.reflect.Method.invoke(Method.java:507)
05-01 12:59:54.362: WARN/System.err(488):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-01 12:59:54.362: WARN/System.err(488):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-01 12:59:54.372: WARN/System.err(488):     at dalvik.system.NativeStart.main(Native Method)
  

и вот мой Java-код

  protected void mapCurrentLocation() {
            String addressString = addressText.getText().toString();
            Geocoder g = new Geocoder(this,Locale.getDefault());
            List<Address> addresses;
            try
            {
//when i use the debugger i get exception at next line 
                addresses = g.getFromLocationName(addressString, 1);
                if(null != addresses amp;amp; addresses.size()>0)
                {
                    address=addresses.get(0);
                    List<Overlay> mapOverlay=mapView.getOverlays();
                    AdreesOverlay addressoverlay = new AdreesOverlay(address);
                    mapOverlay.add(addressoverlay);
                    mapView.invalidate();
                    final MapController mapController=mapView.getController();
                    mapController.animateTo(addressoverlay.getGeopoint(),new Runnable(){
                        public void run() { 
                            mapController.setZoom(12);
                        }});
                }
                else
                {

                }
            }
            catch(IOException exception)
            {
                exception.printStackTrace();
            }
        }
  

любая помощь? заранее спасибо

Ответ №1:

Если вы запускаете это в эмуляторе любой версии API 8 или API 9, это известная ошибка с эмулятором, смотрите Этот отчет об ошибке, служба недоступна

Я нахожу такое же поведение. Я могу заставить его работать на эмуляторе API уровня 7 (2.1), хотя иногда это не удается, поэтому я дважды пытаюсь выполнить свой код, прежде чем появляется всплывающее сообщение «ошибка геокодера».

Комментарии:

1. итак, каково решение этой проблемы?

2. привет, большое спасибо, я попробовал это на уровне API 7, и это отлично работает: D

Ответ №2:

убедитесь, что вы используете правильный КЛЮЧ API… следуйте инструкциям здесь:

http://code.google.com/android/add-ons/google-apis/mapkey.html

обратите внимание, что в отладочной тестовой сборке используется debug.хранилище ключей, поэтому убедитесь, что вы создали ключ для него … пока он не запущен в производство.