Ошибка с 2 фрагментами с SupportMapFragment

Итак, у меня есть активность, которая содержит вкладки, каждой вкладке назначен фрагмент, поэтому вы можете перемещаться по фрагментам с помощью вкладок. На двух из этих вкладок мне нужно загрузить карту (с разной информацией на каждой из них, разными контактами и т. д.), проблема в том, что она загружает только первую, я использую этот код для назначения каждой вкладке желаемого фрагмента (этот адаптер работает нормально).

@Override
public Fragment getItem(int pos) {
    switch (pos) {
        case 0:
            return new SearchFragment();
        case 1:
            return new ParkFragment();
        case 2:
            setActiveSessionsFragment();
            return mActiveSessionsFragment;
        case 3:
            return new ChoosePaymentMethodFragment();
        default:
            return new ParkFragment();
    }
}

в случае 0 и 2 загружаются карты, если я заменю любой из них на любой другой фрагмент, тот, что с картой, работает нормально, но если оставить оба, приложение вылетает. В обоих фрагментах я загружаю карту в FrameLayout, как этот:

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/map_container_search_tab"
    android:background="@color/gray"></FrameLayout>

И я создаю их программно:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    //Create a new map fragment
    SupportMapFragment mapFragment = SupportMapFragment.newInstance();
    getFragmentManager().beginTransaction().add(R.id.map_container_search_tab, mapFragment).commit();
    mapFragment.getMapAsync(this);
}

Однако у меня нет ни метода onDestroy, ни onDestroyView, я пытался реализовать их с помощью того, что видел в других ответах, но это не работает, и я пытался решить это самостоятельно, как уже целую неделю. Это метод, который я пробовал, но безуспешно

public void onDestroyView() {
    super.onDestroyView();
    if (mMap != null) {
        getFragmentManager().beginTransaction()
                .remove(getFragmentManager().findFragmentById(R.id.map_container))
                .commit();
    }

Это логарифм при сбое:

05-16 15:09:33.540 24971-24971/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               Process: com.parso.mobile.android, PID: 24971
                                               java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
                                                   at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1489)
                                                   at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1507)
                                                   at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:634)
                                                   at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:613)
                                                   at com.parso.mobile.android.fragments.SearchFragment.onActivityCreated(SearchFragment.java:108)
                                                   at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1970)
                                                   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1092)
                                                   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
                                                   at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
                                                   at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
                                                   at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
                                                   at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163)
                                                   at android.support.v4.view.ViewPager.populate(ViewPager.java:1106)
                                                   at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:552)
                                                   at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:514)
                                                   at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:946)
                                                   at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2910)
                                                   at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
                                                   at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
                                                   at com.parso.mobile.android.MainActivity.onParkingSessionCreated(MainActivity.java:240)
                                                   at com.parso.mobile.android.fragments.ConfirmSessionFragment$CreateParkingSessionTask.onPostExecute(ConfirmSessionFragment.java:213)
                                                   at com.parso.mobile.android.fragments.ConfirmSessionFragment$CreateParkingSessionTask.onPostExecute(ConfirmSessionFragment.java:189)
                                                   at android.os.AsyncTask.finish(AsyncTask.java:632)
                                                   at android.os.AsyncTask.access$600(AsyncTask.java:177)
                                                   at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                   at android.os.Looper.loop(Looper.java:135)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5538)
                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:372)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:958)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:753)

person Diego Rivera    schedule 19.04.2016    source источник
comment
Взгляните на раздел Solution using TabLayout from the support library этого ответа: stackoverflow.com/a/32579020/4409409   -  person Daniel Nugent    schedule 19.04.2016
comment
да, использование фрагмента, который расширяет SupportMapFragment, помогает ему работать, однако в этом фрагменте я не могу использовать контекст, я не знаю, почему   -  person Diego Rivera    schedule 17.05.2016
comment
Внутри любого фрагмента используйте getActivity(), чтобы получить контекст действия.   -  person Daniel Nugent    schedule 17.05.2016