As Simple Plan told, you need to remove the map in your onDestroyView.
You can do this like this:
@Override
public void onDestroyView() {
SupportMapFragment mapFragment = ((SupportMapFragment) getActivity()
.getSupportFragmentManager().findFragmentById(R.id.google_map));
if(mapFragment != null) {
FragmentManager fM = getFragmentManager();
fM.beginTransaction().remove(mapFragment).commit();
}
super.onDestroyView();
}
If this doesn't work try this post: Error opening SupportMapFragment for second time
Instead of declaring de SupportMapFragment in layout, do it programatically and be sure you use getChildFragmentMananger instead of the classic getFragmentManager() to create the fragment.
mMapFragment = SupportMapFragment.newInstance();
FragmentTransaction fragmentTransaction =
getChildFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.map_root, mMapFragment);
fragmentTransaction.commit();
Keep this SupportMapFragment mMapFragment as you will need it to retrieve the GoogleMap object:
GoogleMap map = mMapFragment.getMap();