我已经尝试了几个小时来弄清楚为什么在将它添加到地图的ovelays之前我不能使用Itemized Map叠加而不这样做:
GeoPoint point;
OverlayItem overlayitem = new OverlayItem(point, "","");
MarkerOverlay.addOverlay(overlayitem);
如果我尝试在没有MarkerOverlay.addOverlay(overlayitem);命令的情况下执行此操作,那么当我尝试添加新的overLay时,如下所示:
public boolean onTap(GeoPoint point, MapView mapView)
{
if (mOverlays.size() > 0)
mOverlays.remove(0);
OverlayItem overlayitem = new OverlayItem(point, "", "");
mOverlays.add(overlay);
populate();
return true;
}
Run Code Online (Sandbox Code Playgroud)
在我的ItemizedOverlay类中,然后我得到一个空的引用exeption(我不知道何时或为什么 - 它说它在调试时没有可用的源代码)
有任何想法吗?
编辑:这是我在logcat中可以找到的:
09-20 22:36:22.164: WARN/dalvikvm(311): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
Run Code Online (Sandbox Code Playgroud)
这就是我认为臭名昭着的例外:
09-20 22:36:22.293: ERROR/AndroidRuntime(311): java.lang.NullPointerException
09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.ItemizedOverlay.getItemsAtLocation(ItemizedOverlay.java:617)
09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.ItemizedOverlay.getItemAtLocation(ItemizedOverlay.java:586)
09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.ItemizedOverlay.handleMotionEvent(ItemizedOverlay.java:498)
09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.ItemizedOverlay.onTouchEvent(ItemizedOverlay.java:572)
09-20 22:36:22.293: …Run Code Online (Sandbox Code Playgroud) android ×1