2015-05-06 34 views
1

的Android的GetMap()返回null Play服务7.3在一个手机(返回OK Play服务7.0等手机)的Android的GetMap()返回null发现地图Play服务7.3(返回OK Play服务7.0)

电话

fonepad 6. Android版本4.2.2

谷歌播放服务版本:

compile 'com.google.android.gms:play-services:7.3.0' 

XML:

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

的Java:

MiAplicacion.mMap = ((MapFragment) ((Activity) MiAplicacion.context).getFragmentManager().findFragmentById(R.id.mi_mapa).getMap(); 

MMAP在fonepad返回null。在另外两款测试过的手机和仿真器中,它工作正常。

Play服务版本:

compile 'com.google.android.gms:play-services:7.0.0' 

它可以在测试的所有手机,包括fonepad确定。

有什么想法发生了什么? 这可能是播放服务7.3.0的错误吗? 我找不到任何解释。

回答

1

MapFragment.getMap()已被弃用,已经有一段时间了:

这种方法已经过时了。

改为使用getMapAsync(OnMapReadyCallback)。该回调方法为您提供了一个GoogleMap实例,该实例保证为非null并且可以使用。

使用getMapAsync(OnMapReadyCallback)代替:

getMapAsync(new OnMapReadyCallback() { 
    public void onMapReady(GoogleMap googleMap) { 
     // ... 
    } 
}); 
+0

这个工作搞好。当我使用这种方法时,手机已经更新了谷歌播放服务,但他之前并没有使用过时的方法。 非常感谢你 –

+0

很高兴它的工作。随时欢迎接受我的回答;) – shkschneider