我有一个FragmentActivity,我用这段代码通过我的XML成功实现了Google Map:
<fragment
android:id="@+id/googleMap"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
但是,如果我尝试初始化地图以使用此代码查找人员位置:
GoogleMap googleMap;
googleMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.googleMap))).getMap();
它抛出一个空指针异常,正如我从其他有关此错误的问题中所理解的那样,在XML文件中创建地图时初始化地图不应该是一个问题。是的,我用过
setContentView(R.layout.map);
在我初始化地图之前。
答案 0 :(得分:1)
错误是由于不正确的变量初始化尝试更改您的代码,如下所示,谢谢
private GoogleMap gMap;
MapFragment googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map_search);
googleMap= (MapFragment) getFragmentManager().findFragmentById(
R.id.googleMap);
gMap= googleMap.getMap();
答案 1 :(得分:1)
在xml中你使用的是MapFragment.Change it -
<fragment
android:id="@+id/mapfragment"
android:layout_width="wrap_content"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:layout_gravity="center_horizontal"
class="com.google.android.gms.maps.SupportMapFragment" />
java -
googleMap = ((SupportMapFragment)getActivity().getSupportFragmentManager().findFragmentById(R.id.mapfragment)).getMap();
答案 2 :(得分:1)
您在XML文件添加中使用支持片段 这条线在片段
class="com.google.android.gms.maps.SupportMapFragment"
像belove一样。
<fragment
android:id="@+id/googleMap"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
/>
并把这个
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.googleMap)).getMap();