2013-05-09 66 views
0

我的getMap()方法返回null。爲什麼這個方法返回null?我查看了Android開發人員文檔以確保我正確使用此方法。這裏我使用來獲取地圖的代碼行:getMap()返回null

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

您是在模擬器上測試嗎?我有一段時間沒有嘗試過,但地圖服務曾經在仿真器上不可用。 – 2013-05-09 18:14:50

+0

是的,我試過了。沒有運氣。 – user268397 2013-05-09 18:15:20

+0

抱歉改變了我的評論。我的意思是模擬器不是調試器。 – 2013-05-09 18:16:11

回答

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)

剛剛與舊版本#更換新Go​​ogle_Play_services_lib 4精選文摘中e並將其引用到該項目中。

+0

我有版本6的Google Play服務庫。這足夠好嗎? – user268397 2013-05-09 19:22:40

+0

將其更改爲rev 4僅用於模擬器測試 – Neo 2013-05-10 04:32:42

+0

如果要在Emulator上運行地圖,則必須通過adb安裝這兩個APK文件'adb install com.android.vending.apk adb install com.google.android .gms.apk」 – Neo 2013-05-10 07:41:38

0

顯然,線

05-09 12:49:34.282: W/GooglePlayServicesUtil(5928): Google Play services out of date. Requires 3027100 but found 2012110 

告訴我們,爲什麼在地圖不是實例。

你需要有谷歌的最新版本的播放設備上的服務,否則你會得到:
This app won't run without Google Play Services
getMap()將返回null