これは古い質問ですが、誰かの役に立てば幸いです。
ViewPager は、ViewPager#setAdapter() を介して設定されたアダプターと連携して動作します。この質問の場合、FragmentPagerAdapter がアダプターとして使用されているようです (このアダプターは例外に表示されるようにフラグメント android:switcher:[x]:[y] に名前を付けているため)。
FragmentPagerAdapter に関する 1 つの重要な観察事項は次のとおりです。
FragmentPagerAdapter は、ViewPager で使用される割り当てられたフラグメントを所有します。
ViewPagerAdapter と組み合わせた ViewPager のユーザーは、次のようにプロトタイプ化された getItem() メソッドを実装する FragmentPagerAdapter のサブクラスを定義する必要があります。
public abstract Fragment getItem(int position);
この関数は、ViewPager がページとして使用するさまざまなフラグメントを作成します。このメソッドの実装は、フラグメントを割り当てるためにサブクラスによって FragmentPagerAdapter() に提供されるサービスと見なす必要があります。
つまり、サブクラスはフラグメントを割り当てますが、フラグメントの所有者ではありません。
上記のように、フラグメントの所有者は FragmentPagerAdapter であるため、すべてのフラグメント操作 (FragmentManager/FragmentTransaction の意味で) は FragmentPagerAdapter によってのみ実行する必要があります。
これらのフラグメントに対して操作を実行しようとすると、ViewPager の通常の操作が妨げられ、未定義の動作が発生する可能性があります。
この質問の場合、FragmentPagerAdapter の外部で ViewPager によって使用されるフラグメントの 1 つを削除しようとする試みがありますが、これは説明したように悪く、おそらくこの例外で終了するシーケンスをトリガーしました。
ViewPager でページを動的に削除/追加/置換する必要がある場合は、アダプターで notifyDataSetChanged() を呼び出す方法です。
幸運を!