我正在尝试使用以下代码来设置我的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为空提供任何建议吗?任何帮助将不胜感激。
答案 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);
然后我的地图工作正常。因此,请确保在声明地图之前为您设置布局。