使用谷歌地图和json标记的Android应用程序

使用谷歌地图和json标记的Android应用程序,android,json,google-maps,Android,Json,Google Maps,我试图使用上提供的代码,但除非我注释掉这些行,否则应用程序将无法运行 setUpMapIfNeeded(); } @Override protected void onResume() { super.onResume(); setUpMapIfNeeded(); } private void setUpMapIfNeeded() { if (map == null) { map = ((SupportMapFragment) getSupportFragmentManager().find

我试图使用上提供的代码,但除非我注释掉这些行,否则应用程序将无法运行

setUpMapIfNeeded();
}

@Override
protected void onResume() {
super.onResume();
setUpMapIfNeeded();
}

private void setUpMapIfNeeded() {
if (map == null) {
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
if (map != null) {
setUpMap();
}
}
}

在那之后,标记就不会出现了。我是android开发新手,如果有人能帮我,我将不胜感激。谢谢

我更愿意将此作为评论添加,但我的声誉太低,因此:

如果您将所有这些都注释掉,那么标记当然不会显示:setupmapifneedd()将调用setUpMap(),它将调用retrieveAndCities(),它将调用createMarkersFromJson(),标记就是在这里创建的

如果从未触发整个级联,则不会创建标记,因此不会显示标记


您最初从哪里获得NPE?

为什么应用程序在没有这些行的情况下不能运行?我的LogCat抛出了“java.lang.NullPointerException”您认为需要代码来显示标记吗?我想您的主要活动的第47行是map=((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();正当您确定片段的id(在布局xml中)确实是映射吗?(android:id=“@+id/map”)此外,如果id确实正确,可能会尝试“清理项目”-当我在布局XML中移动元素时,有时会出现这样的错误…这很有效。我将代码更改为map=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();它成功了!