android(支持)MapFragment getMap()返回null

时间:2013-09-26 08:20:38

标签: android android-mapview mapfragment

我已经阅读了很多关于这个问题的话题,但没有任何帮助。 所以我想在SupportMapFragment中运行GoogleMap。在FragmentActivity中,我在onCreate方法

中初始化了地图
@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_frame);

    // Initialize Google Maps Android API
    try {
        MapsInitializer.initialize(this);
    } catch (GooglePlayServicesNotAvailableException e) {
        e.printStackTrace();
    }
...

我的MapFragment代码看起来与此完全相同

public class MapFragment extends SupportMapFragment {

private final String TAG = getClass().getSimpleName();


public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    return inflater.inflate(R.layout.map, null);
}

public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    GoogleMap gMap = this.getMap();

    Log.d(TAG,
            "getMap() " + ((gMap == null) ? "null" : gMap.toString()));

    // Setting Location and Zoom
    gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
            40.76793169992044f, -73.98180484771729f), 14.0f));
}

}

每次我使用getMap方法获取null ...任何想法?

€二叔:

<?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/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
map:cameraBearing="112.5"
map:cameraTargetLat="-33.796923"
map:cameraTargetLng="150.922433"
map:cameraTilt="30"
map:cameraZoom="50"
map:mapType="normal"
map:uiCompass="false"
map:uiRotateGestures="true"
map:uiScrollGestures="false"
map:uiTiltGestures="true"
map:uiZoomControls="false"
map:uiZoomGestures="true" />

1 个答案:

答案 0 :(得分:1)

在将谷歌播放服务更新到最新版本后面临类似问题。 通过在清单

中添加元数据解决了我的问题
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

https://developers.google.com/maps/documentation/android/start#add_a_map