我的getMap()方法返回null。为什么这个方法返回null?我查看了Android开发者文档,以确保我正确使用此方法。这是我用来获取地图的代码行:
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.myMapView)).getMap();
这是我的Java代码:
private ProjectionProxy proxy = new ProjectionProxy();
private GoogleMap mMap;
@Override
protected void onCreate(Bundle load) {
super.onCreate(load);
setContentView(R.layout.fragment_ride_tracking);
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.myMapView)).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"/>
这是logcat输出:
05-09 12:49:34.282: W/GooglePlayServicesUtil(5928): Google Play services out of date. Requires 3027100 but found 2012110
05-09 12:49:34.282: E/RideTracking(5928): Google Map VALUE:null
05-09 12:49:34.302: E/OGT.GPSLoggerServiceManager(5928): No GPSLoggerRemote service connected to this manager
05-09 12:49:34.322: W/dalvikvm(5928): Unable to resolve superclass of Lcom/android/gpstracker/viewer/FixedMyLocationOverlay; (2174)
05-09 12:49:34.322: W/dalvikvm(5928): Link of class 'Lcom/android/gpstracker/viewer/FixedMyLocationOverlay;' failed
05-09 12:49:34.322: W/dalvikvm(5928): Unable to resolve superclass of Lcom/android/gpstracker/viewer/FixedMyLocationOverlay; (2174)
非常感谢任何帮助!
答案 0 :(得分:0)
尝试改变它
GoogleMap googleMap;
MapFragment fm = (MapFragment) getFragmentManager().findFragmentById(R.id.myMapView);
googleMap = fm.getMap();
如果您在模拟器中运行它,则需要安装两个apk文件(Read this Post)
如果您已调整模拟器并已安装这两个文件,则必须将Google_Play_services_lib更改为版本4 (download it here)
只需将新的Google_Play_services_lib替换为eclipse中旧的版本#4 ,并将其引用到该项目中。
答案 1 :(得分:0)
显然是行
05-09 12:49:34.282: W/GooglePlayServicesUtil(5928): Google Play services out of date. Requires 3027100 but found 2012110
告诉我们为什么没有实例化地图。
您需要在自己的设备上安装最新版本的Google Play服务,否则就会得到以下信息:
并getMap()
将返回null
。