我的MapView出现以下错误:" CameraUpdateFactory未初始化"
有很多帖子建议添加:MapsInitializer.initialize(this);
但现在IDE告诉我:" GooglePlayServicesNotAvailableException永远不会被抛出"
我的代码如下:
XML:
<com.google.android.gms.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
运行它的代码:
mapView = (MapView) header.findViewById(R.id.mapview);
map = mapView.getMap();
try {
MapsInitializer.initialize(this);
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
// Updates the location and zoom of the MapView
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(43.1, -87.9), 10);
map.animateCamera(cameraUpdate);
答案 0 :(得分:1)
首先,您收到编译器警告,因为MapsInitializer.initialize(this);
没有抛出GooglePlayServicesNotAvailableException
。因此,通过使用try / catch包围它,您将在catch
中引入无法访问的代码。
现在您需要致电onCreate
和onResume
的原因是Google需要执行生命周期事件逻辑才能使MapView
正常运行。如果您使用的是MapFragment
,则会在后台为您处理。理想情况下,您将这些方法调用放在各自的Activity / Fragment方法中。请拨打mapView.onCreate()
方法中的onCreate
,mapView.onResume()
中的onResume
等。您还应该添加对onPause
和onDestroy
的通话。
希望能为你解决问题。如果您对此有任何疑问,请随时跟进。