getMap()返回null

时间:2013-05-09 18:11:07

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

我的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)

非常感谢任何帮助!

2 个答案:

答案 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服务,否则就会得到以下信息:
This app won't run without Google Play Services
getMap()将返回null