使用适用于Android的Google Maps API(v2),我尝试将一些国家/地区多边形近似值存储到数据结构中,尤其是使用String作为键(国家/地区名称)和PolygonOptions的ArrayList的地图。 / p>
此var是私有的,并由:
声明private Map<String, ArrayList<PolygonOptions>> worldMap;
但是当我尝试使用PolygonOption填充它时,我的代码崩溃了,在以下函数中:
private void addSomeCountry() {
ArrayList <PolygonOptions> MyPoli = new ArrayList<PolygonOptions>();
PolygonOptions rectOptions = new PolygonOptions()
.add(new LatLng(42.569962, 1.78172 ))
.add(new LatLng(42.509438, 1.723611))
.add(new LatLng(42.601944, 1.445833))
.add(new LatLng(42.569962, 1.78172))
.fillColor(Color.TRANSPARENT)
.strokeColor(Color.CYAN);
MyPoli.add(rectOptions);
worldMap.put("Andorra", MyPoli);
}
具体来说,它崩溃时出现以下错误:
04-04 21:20:30.335 22562-22562/otorrillas.geography E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: otorrillas.geography, PID: 22562
Caused by: java.lang.NullPointerException
at otorrillas.geography.DataSaver.addSomeCountry(DataSaver.java:49)
at otorrillas.geography.DataSaver.onCreate(DataSaver.java:32)
我做错了吗?
答案 0 :(得分:2)
我没有看到你在任何地方初始化worldMap
。
private Map<String, ArrayList<PolygonOptions>> worldMap = new HashMap<>();
应该这样做。