Android谷歌地图:地图视图初始化

Arn*_*aud 0 android android-mapview google-maps-android-api-2

我正在尝试使用MapView该类在我的Android应用程序中显示一个简单的地图.我onCreate在我的活动中使用以下方法:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        MapsInitializer.initialize(this);
    } catch (GooglePlayServicesNotAvailableException e) {
        Log.e("Address Map", "Could not initialize google play", e);
    }

    MapView mapView = new MapView(this);
    CameraUpdate camPos = CameraUpdateFactory.newLatLng(new LatLng(11.562276,104.920292));
    mapView.getMap().moveCamera(camPos);
    setContentView(mapView);
}
Run Code Online (Sandbox Code Playgroud)

我有一个NullPointerException,因为该方法mapView.getMap()返回null.不明白为什么,谷歌播放服务显然存在并初始化.

Arn*_*aud 5

无法MapView上班,我终于结束了上课SupportMapFragment.

对于那些可能有帮助的人,这里是我的活动的完整代码:

public class AddressMap extends android.support.v4.app.FragmentActivity {

    private final static int FRAGMENT_ID = 0x101;
    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.HORIZONTAL);
        layout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

        SupportMapFragment fragment = SupportMapFragment.newInstance();
        layout.setId(0x101);
        {
            FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
            fragmentTransaction.add(FRAGMENT_ID, fragment);
            fragmentTransaction.commit();
        }

        setContentView(layout);

    }

    @Override
    protected void onResume() {
        super.onResume();
        setUpMapIfNeeded();
    }


    private void setUpMapIfNeeded() {
        if (mMap == null) {
            mMap = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(FRAGMENT_ID)).getMap();
            if (mMap != null) {
                mMap.moveCamera(
                    CameraUpdateFactory.newLatLngZoom(new LatLng(11.562276, 104.920292), 10));
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)