2013-01-17 43 views
3

試圖地圖動畫到一定的GeoPoint時,我得到一個致命的異常NullPointerException異常 - 這裏是例外:地圖API拋出的animateTo()方法

12-20 17:53:20.400: E/Crittercism(3523): java.lang.NullPointerException 
12-20 17:53:20.400: E/Crittercism(3523): at com.amazon.geo.maps.MercatorProjection.latLongToWorldPixels(MercatorProjection.java:397) 
12-20 17:53:20.400: E/Crittercism(3523): at com.amazon.geo.maps.MercatorProjection.toPixels(MercatorProjection.java:69) 
12-20 17:53:20.400: E/Crittercism(3523): at com.amazon.geo.maps.MapView.animateTo_AmazonInternal(MapView.java:1801) 
12-20 17:53:20.400: E/Crittercism(3523): at com.amazon.geo.maps.MapController.animateTo(MapController.java:46) 
12-20 17:53:20.400: E/Crittercism(3523): at com.fatattitude.myapplication.MyMapActivity.moveMapToPoint(BusMapActivity.java:1564) 

這裏是我的代碼。我的日誌輸出還顯示如果我評論線

//mc.stopAnimation(true); 

我不再得到例外的是GeoPoint的具有LatitudeE6 = 51537141值LongitudeE6 = -246271

private void moveMapToPoint(GeoPoint gp, int zoomLevel) { 
MapController mc = mapView.getController(); 

if (zoomLevel < 0) 
zoomLevel = mapView.getZoomLevel(); 

mc.stopAnimation(true); 
mc.setZoom(zoomLevel); 

String strGeoPointInfo = String.format("Lat:%d, Lng:%d", gp.getLatitudeE6(), gp.getLongitudeE6()); 
Log.i("GeoPoint-Info", "**moveMapToPoint: " + strTestOutput); 

mc.animateTo(gp); 
} 

任何人都可以幫助我理解爲什麼會發生此異常嗎?

請幫我解決這個問題。

回答

4

在GPS傳感器正在尋找位置之前,該應用可能會等待。

mMyLocationOverlay.runOnFirstFix(new Runnable() { 
    public void run() { 
        mapView.getController().animateTo(myLocation); 
     }});       
+0

所以你的意思是我需要添加mapView.getController()。animateTo(myLocation);調用MapController後mc = mapView.getController(); – user1980076

+0

重點是在runOnFirstFix方法中爲您的geoPoint設置動畫,因爲您正試圖在傳感器獲取之前獲取您的位置。 – Naskov

+0

謝謝。我會改變它,然後再試一次。 – user1980076

相關問題