从MapFragment获取GoogleMap时出现NullPointerException

时间:2014-03-01 12:30:12

标签: android google-maps nullpointerexception mapfragment

获取android谷歌地图时,

空指针异常错误在哪里?

MapActivity.java:

@Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);

    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map1))
           .getMap();

    Marker marker=map.addMarker(new MarkerOptions().position(LOCATION_CITY).title("").visible(true));
    marker.setDraggable(true);


}

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/map1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:name="com.google.android.gms.maps.MapFragment"/>

2 个答案:

答案 0 :(得分:1)

您应该通过

进行检查
if (map != null) {
   Marker marker=map.addMarker(new MarkerOptions().position(LOCATION_CITY).title("").visible(true));
marker.setDraggable(true);
}

必须确保如果您的最低SDK版本是&lt; 12然后你必须使用

android:name="com.google.android.gms.maps.SupportMapFragment"

如果它是&gt; = 12那么你应该使用这个

android:name="com.google.android.gms.maps.MapFragment"

答案 1 :(得分:0)

使用SupportMapFragment代替MapFragment,如:

map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map1)).getMap();