我有一个类,它扩展了OverlayItem以包含更多的字段。我用一个OverlayItem类更改了我的程序中的所有PointOfInterest事件。
当我试图运行与OverlayItem相同的程序时,在调用nullpointerException类中的populate()后,它会与nullpointerException崩溃。日志打印出正确的值。下面是它崩溃的方法。
protected void addOverlay(PointOfInterest pointOfInterest) {
mapOverlays.add(pointOfInterest);
setLastFocusedIndex(-1);
Log.d("Add Overlay", pointOfInterest.getDescription());
populate(); <-- Crashes here
}和错误
12-06 17:29:03.610: E/AndroidRuntime(1822): java.lang.NullPointerException
12-06 17:29:03.610: E/AndroidRuntime(1822): at com.google.android.maps.ItemizedOverlay.populate(ItemizedOverlay.java:312)
12-06 17:29:03.610: E/AndroidRuntime(1822): at com.example.mapproject.OurItemizedOverlay.addOverlay(OurItemizedOverlay.java:108)
12-06 17:29:03.610: E/AndroidRuntime(1822): at com.example.mapproject.MainActivity.addPointToMap(MainActivity.java:211)有什么想法吗?谢谢!
发布于 2012-12-06 20:13:27
我没有提到传递给addOverlay方法的addOverlay是从JSON字符串创建的,因此构造函数包含
super(point, title, snippet)从未被召唤过。
我将其添加到我的addOverlay方法中,该方法似乎已经对其进行了排序!
protected void addOverlay(PointOfInterest pointOfInterest) {
PointOfInterest pointOfInterest2 = new PointOfInterest(pointOfInterest.title,pointOfInterest.title,pointOfInterest.type,pointOfInterest.point,pointOfInterest.privateField);
mapOverlays.add(pointOfInterest2);
setLastFocusedIndex(-1);
Log.d("Add Overlay", pointOfInterest2.getSnippet());
populate();
}https://stackoverflow.com/questions/13749374
复制相似问题