2010-09-10 68 views
1

我一直在努力使用runOnFirstFix()方法很長時間。也許問題出在Running deferred on first fix的第一行。Android的地圖庫在顯示對話框時執行animateTo時會拋出NullPointerException

事情是,當第一個修復程序被執行並且我在那個時候顯示一些對話框時,它經常崩潰。

我提取從logcat的以下內容:

I/Maps.MyLocationOverlay(2425): Running deferred on first fix: [email protected] 
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) 

我還沒有找到任何類似的任何引用,這讓我懷疑我做錯了什麼在一個非常基本的水平。有沒有人見過這個?

+0

你可以發佈代碼? – 2010-09-11 00:32:18

回答

0

我基本上有一個MapView的一個MapActivity,我就加一個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'方法時仍然顯示,它會崩潰。

0

正如我在run()方法中看到的,它可能是您在UI線程中調用animateTo的問題。我認爲你應該發佈在UI線程上,使其工作

相關問題