Google Map变量为null

时间:2013-05-13 19:29:36

标签: java android google-maps-android-api-2

我正在尝试使用以下代码来设置我的GoogleMap变量:

 private GoogleMap mMap; 

 mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.myMapView)).getMap();

    //MapFragment fm = (MapFragment)     getFragmentManager().findFragmentById(R.id.myMapView);
    //mMap = fm.getMap();

    Log.e("RideTracking", "Google Map VALUE:"+mMap);

    if (mMap != null) { 
        proxy.setProjection(mMap.getProjection());
    }

这是应用程序的这一部分的XML:

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

由于某种原因,mMap的值为null,我不确定为什么它返回null,因为我有这行代码:

mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.myMapView)).getMap();

以下是我获得的logcat输出:

05-13 14:09:08.553: E/RideTracking(6415): Google Map VALUE:null

有人可以就为什么mMap为空提供任何建议吗?任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:0)

如果尝试将代码放在方法onActivityCreated()中。这可以确保您的地图准备就绪。

答案 1 :(得分:0)

我遇到了同样的问题,即mMap为NULL。

尝试在mMap调用下添加以下代码行。

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

它解决了我的问题与NULL问题。

尝试在这篇文章中查看答案

NullPointerException whilst trying to add polyline/marker to a GoogleMap

答案 2 :(得分:0)

那是因为你无法连接谷歌地图api,你是否从谷歌获得了密钥并将其添加到你的清单?请参阅以下链接

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

http://www.vogella.com/articles/AndroidGoogleMaps/article.html

按照这些说明进行操作,如果它仍然无法发布您的清单和我将帮助您的代码,我已经在地图上工作

答案 3 :(得分:0)

我有同样的问题然后我发现我忘了写行

setContentView(R.layout.activity_direction);

然后我的地图工作正常。因此,请确保在声明地图之前为您设置布局。