我正在将我的应用转移到适用于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"/>
我在日志中没有收到任何错误。
答案 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)
我只能解决两个问题: