MapView在Android的GoogleMaps API v2中显示空白区块

时间:2013-01-10 11:35:56

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

我正在将我的应用转移到适用于Android的新Google API。我决定使用MapView而不是片段,因为地图是片段的一部分。 我已成功使用MapFragment显示地图,但在尝试使用MapView执行相同操作时,它只显示空的切片。 有没有人有一个我缺少的线索? 这些是Manifest文件的权限:

<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"/>

我在日志中没有收到任何错误。

2 个答案:

答案 0 :(得分:13)

您是否转发了此处所写的所有活动生命周期方法 https://developers.google.com/maps/documentation/android/map#mapview

“此类的用户必须将所有Activity生命周期方法(例如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();
}

答案 1 :(得分:3)

我只能解决两个问题:

  1. 您的构建的签名与您的地图api密钥
  2. 不匹配
  3. 您没有在MapActivity中使用MapView。否则它将不起作用。