Библиотека карт Android выдает исключение NullPointerException при выполнении animateTo во время отображения диалога - PullRequest
1 голос
/ 10 сентября 2010

Я довольно долго боролся с методом runOnFirstFix ().И, возможно, проблема в первой строке, которая говорит: Running deferred on first fix.

Дело в том, что когда выполняется первое исправление, и в этот момент я отображаю какой-то диалог, он довольно часто вылетает.

Я извлек следующее из logcat:

I/Maps.MyLocationOverlay( 2425): Running deferred on first fix: com.MyApp.Map$2@43aef8e8
W/dalvikvm( 2425): threadid=23: thread exiting with uncaught exception (group=0x4001e170)
E/AndroidRuntime( 2425): Uncaught handler: thread Thread-24 exiting due to uncaught exception
E/AndroidRuntime( 2425): java.lang.NullPointerException
E/AndroidRuntime( 2425):  at com.google.android.maps.MapController.animateTo(MapController.java:232)
E/AndroidRuntime( 2425):  at com.google.android.maps.MapController.animateTo(MapController.java:203)
E/AndroidRuntime( 2425):  at com.MyApp.Map$2.run(Map.java:129)
E/AndroidRuntime( 2425):  at java.lang.Thread.run(Thread.java:1096)

Я не нашел никаких ссылок на что-либо подобное, и это заставляет меня подозревать, что я делаю что-то не так на самом базовом уровне.Кто-нибудь видел это раньше?

Ответы [ 2 ]

0 голосов
/ 31 марта 2011

Как я вижу в методе run (), может возникнуть проблема, что вы вызываете animateTo не в потоке пользовательского интерфейса. Я думаю, что вы должны опубликовать это в теме пользовательского интерфейса, чтобы заставить его работать

0 голосов
/ 11 сентября 2010

У меня в основном есть MapActivity с MapView, и я добавляю на него MyLocationOverlay

//My location overlay
myLocation = new MyLocationOverlay(this, mapView);
myLocation.enableMyLocation();
mapView.getOverlays().add(myLocation);      
myLocation.runOnFirstFix(new Runnable(){


 @Override
   public void run() {
    MapController myController = Map.this.mapView.getController();
                  myController.animateTo(application.myLocation.getMyLocation());
   }
    });

Затем в какой-то момент выполнения действие показывает диалог через showDialog (...) и, если диалоговое окно все еще показывает, когда вызывается метод animateTo, происходит сбой.

...