0

我已经阅读了很多关于这个问题的主题,但没有任何帮助。所以我想在 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" />
4

1 回答 1

1

将google play服务更新到最新版本后遇到类似问题。通过在清单中添加元数据解决了我的问题

<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

于 2013-11-08T10:21:19.130 回答