Android 使用google地图支持片段时出现故障状态错误

Android 使用google地图支持片段时出现故障状态错误,android,google-maps,android-fragments,Android,Google Maps,Android Fragments,我在fragment中的应用程序中使用GoogleMap,面临一个问题 我犯了这个错误 “java.lang.IllegalStateException:失败保存状态:活动 SupportMapFragment{212f6b1}已清除索引:-1“ 当我的手机在包含谷歌地图的片段处于活动状态时进入睡眠状态。 我的谷歌地图代码如下: public class MapFragment extends Fragment implements OnMapReadyCallback{ public Map

我在fragment中的应用程序中使用GoogleMap,面临一个问题

我犯了这个错误

“java.lang.IllegalStateException:失败保存状态:活动 SupportMapFragment{212f6b1}已清除索引:-1“

当我的手机在包含谷歌地图的片段处于活动状态时进入睡眠状态。 我的谷歌地图代码如下:

public class MapFragment extends Fragment implements OnMapReadyCallback{

public MapFragment() {
}

GoogleMap mgoogleMap;

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    Log.d("cycle","Mapfragment-created");
    View RootView = inflater.inflate(R.layout.mapfragment, container, false);
    SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
    return RootView;
}

@Override
public void onMapReady(GoogleMap googleMap) {
    Log.d("map", "OnMapReady");
    if (mgoogleMap == null)
        mgoogleMap = googleMap;
}

@Override
public void onResume() {
    super.onResume();
    Log.d("cycle-mapfragment","onResume");
}

@Override
public void onPause() {
    super.onPause();
    Log.d("cycle-mapfragment", "onPause");
}

@Override
public void onStop() {
    super.onStop();
}

@Override
public void onDestroyView() {
    try {
        SupportMapFragment fragment = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map));
        FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
        ft.remove(fragment);
        ft.commit();
    } catch (Exception e) {
        e.printStackTrace();
    }
    finally {
        super.onDestroyView();
    }
}
}

如何解决这个问题?

我修复了它,删除了这条线

fm.executePendingTransactions()

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    mMapView = new SupportMapFragment();
    FragmentManager fm = getChildFragmentManager();
    fm.beginTransaction().replace(R.id.map, mMapView).commit();
    //fm.executePendingTransactions();
}