GoogleMap在getMap()上抛出空指针;

时间:2014-11-01 11:09:51

标签: android google-maps

我有一个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);

在我初始化地图之前。

3 个答案:

答案 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();