2013-01-10 73 views
4

我正在將我的應用程序移至Google的新版Google Android API。我決定使用MapView而不是Fragment,因爲地圖是Fragment的一部分。 我已經成功地顯示了MapFragment的地圖,但是當試圖對MapView執行相同操作時,它只顯示空的圖塊。 有沒有人有提示我失蹤? 這些都是從清單文件的權限:MapView在GoogleMaps API v2中爲Android顯示空的圖塊

<permission android:name="com.beezer.permission.MAPS_RECEIVE" 
       android:protectionLevel="signature"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="com.beezer.permission.MAPS_RECEIVE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

我不明白在日誌中的任何錯誤。

+0

同樣的問題在這裏 –

+1

是什麼MapFragment和MapView的 – Fido

回答

12

你是否轉發所有的活動生命週期方法如下書面 https://developers.google.com/maps/documentation/android/map#mapview

「這一類的用戶必須將所有的活動生命週期方法 - 如的onCreate()的onDestroy()的onResume( )和onPause() - 到MapView類中的相應方法。「

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    mapView.onCreate(savedInstanceState); 
    try { 
     MapsInitializer.initialize(mContext); 
    } catch (GooglePlayServicesNotAvailableException e) { 
     e.printStackTrace(); 
    } 
} 

@Override 
public void onPause() { 
    super.onPause(); 
    mapView.onPause(); 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    mapView.onResume(); 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    mapView.onDestroy(); 
} 
+0

這可能是問題所在。 最終我使用新的支持庫中支持的嵌套片段來解決它。這使得解決方案更加優雅。 – user1240792

+0

我有同樣的問題,mapView變量集在哪裏?我使用一個片段的自定義佈局,這個佈局包含'MapView',這個'MapView'的實例只能在'onViewCreated'調用中獲得,其中的佈局是膨脹的。但'onCreate'方法被調用較早,所以mapView變量在這個時候是空的... – vitakot

+0

好的,我明白了:)謝謝你的回答。 – vitakot

3

有我這個只有兩個問題:

  1. 你構建的簽名不與您的地圖API密鑰
  2. 你不使用的MapView從MapActivity內匹配。否則它將無法工作。
+0

之間的區別我的API密鑰的作品,因爲如果我使用的XML格式的MapFragment查看地圖顯示出來就好了。 –

+2

是android google maps api v2的MapActivity部分嗎? –