GoogleMap抱怨是一个空对象引用

时间:2016-01-14 20:19:09

标签: android google-maps android-fragments

我正在使用Android应用程序,我使用地图,这是我得到的错误

Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.setMapType(int)' on a null object reference

在此处发布我的查询之前,我已经查找了其他类似的问题,但我的代码已经包含了所有建议内容,所以我希望有人能指出错误。

这是抛出错误的行(第二行)。 我不知道为什么在我分配它时(至少我认为我有)将地图称为null

private void initViews() {
    map = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap();
    //map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
    map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}

这也是我的xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingTop="65dp" >

    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

1 个答案:

答案 0 :(得分:1)

使用getMapAsync(...)代替getMap()。 可以找到示例here