2015-05-06 31 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