MapView在谷歌地图API v2 Android版中显示空磁贴
我正在将我的应用程序移动到新的谷歌Android API上。我决定使用地图视图而不是片段,因为地图是片段的一部分。 我已经成功地用MapFragment显示了一个地图,但是当尝试用MapView执行同样的操作时,它只显示空的分幅。 有人知道我遗漏了什么吗? 以下是清单文件中的权限:MapView在谷歌地图API v2 Android版中显示空磁贴,android,google-maps-android-api-2,Android,Google Maps Android Api 2,我正在将我的应用程序移动到新的谷歌Android API上。我决定使用地图视图而不是片段,因为地图是片段的一部分。 我已经成功地用MapFragment显示了一个地图,但是当尝试用MapView执行同样的操作时,它只显示空的分幅。 有人知道我遗漏了什么吗? 以下是清单文件中的权限: <permission android:name="com.beezer.permission.MAPS_RECEIVE" android:protectionLevel="
<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"/>
我在日志中没有发现任何错误。我只能解决两个问题:
您是否转发了此处所述的所有活动生命周期方法 此类的用户必须将所有活动生命周期方法(如onCreate()、onDestroy()、onResume()和onPause())转发到MapView类中相应的方法
我的api键可以工作,因为如果我在xml视图中使用MapFragment,那么地图就会显示得很好。最终,我使用新的支持库中支持的嵌套片段解决了这个问题。这使得解决方案更加优雅。我有同样的问题,mapView变量集在哪里?我对片段使用自定义布局,此布局包含
MapView
,此MapView
的实例只能在onViewCreated
调用期间获得,此时布局已膨胀。但是前面调用了onCreate
方法,因此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();
}