MapView修复不编译

时间:2014-04-24 13:46:02

标签: android

我的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);

1 个答案:

答案 0 :(得分:1)

首先,您收到编译器警告,因为MapsInitializer.initialize(this);没有抛出GooglePlayServicesNotAvailableException。因此,通过使用try / catch包围它,您将在catch中引入无法访问的代码。

现在您需要致电onCreateonResume的原因是Google需要执行生命周期事件逻辑才能使MapView正常运行。如果您使用的是MapFragment,则会在后台为您处理。理想情况下,您将这些方法调用放在各自的Activity / Fragment方法中。请拨打mapView.onCreate()方法中的onCreatemapView.onResume()中的onResume等。您还应该添加对onPauseonDestroy的通话。

希望能为你解决问题。如果您对此有任何疑问,请随时跟进。