在我的应用程序中,我以编程方式使用google map,但是当我调用getMap()时,它返回null。
即使我尝试了onActivityCreated(),但它仍返回null。
有人请帮助我..
这是我的代码,

public void callMap() {
        try {
            int status = GooglePlayServicesUtil
                    .isGooglePlayServicesAvailable(mActivity);
            if (status == ConnectionResult.SUCCESS) {
                Log.d("sreedhu", "Google Play Service Available");
                gmo = (new GoogleMapOptions()).zoomControlsEnabled(true)
                        .rotateGesturesEnabled(true);
                mapFragment = SupportMapFragment.newInstance(gmo);
                map=mapFragment.getMap();
                manager=getFragmentManager();
                FragmentTransaction fragmentTransaction = manager
                .beginTransaction();
                fragmentTransaction.add(R.id.mapFragmentHole, mapFragment);
                fragmentTransaction.commit();
                manager.executePendingTransactions();
                            mapFragment=getMap();
            } else if (GooglePlayServicesUtil.isUserRecoverableError(status)) {
                ErrorDialogFragment.newInstance(status).show(
                        getFragmentManager(), "errorDialog");
            } else {
                Toast.makeText(mActivity, "Google Map v2 not available",
                        Toast.LENGTH_LONG).show();
                mActivity.popFragments();
            }

        } catch (Exception e) {
            Log.d("sreedhu", "play" + e.toString());
        }



    }

最佳答案

executePendingTransactions似乎不符合您的预期。

通过代码创建MapFragment时,直到调用它的onCreateView之前,您都无法从中获取GoogleMap。

您需要在onStart或onResume中调用map=mapFragment.getMap();及其后的所有代码。

10-08 17:51