0

我正在尝试使用以下代码获取和设置我的 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

4 回答 4

0

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

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

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

它解决了我的 NULL 问题。

尝试在这篇文章中寻找答案

尝试将折线/标记添加到 GoogleMap 时出现 NullPointerException

于 2013-05-14T04:19:28.463 回答
0

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

于 2013-05-13T20:03:20.187 回答
0

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

setContentView(R.layout.activity_direction);

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

于 2013-05-14T07:03:59.047 回答
0

那是因为您无法连接到 google maps api,您是否从 google 获得了密钥并将其添加到您的清单中?请参阅下面的链接

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

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

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

于 2013-05-14T06:55:27.037 回答