无法初始化GoogleMap,返回null

时间:2014-07-03 09:13:01

标签: android google-maps

我尝试初始化GoogleMap实例,但SupportMapFragment返回null。 这是我的MainActivity类:

public class MainActivity extends FragmentActivity 
{
GoogleMap gMap;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    initMap();                            //here is the NullPointerExeption
    setContentView(R.layout.activity_map);
}


public boolean initMap()
{

    if (gMap == null) {
        SupportMapFragment mapFrag =
                (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.fragMap);
        gMap = mapFrag.getMap();
    }
    return (gMap != null);
}

}

这是我的activity_map.xml:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/fragMap"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />

有什么问题?如果我注释掉initMap()函数,它可以正常工作并显示地图。

1 个答案:

答案 0 :(得分:3)

我认为你应该改变顺序

setContentView(R.layout.activity_map);     
initMap();  

首先,您应该setContentView(R.layout.activity_map);,然后从SupportMapFragment引用地图