Так как я обновил свое приложение, чтобы использовать поддержку lib rev. 11 и скомпилирован против SDK 4.2. Я получаю следующую ошибку:
java.lang.IllegalStateException: Fragment already added: i{4079e598 #2 id=0x1020002 i}
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1159)
at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:729)
at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1493)
at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:477)
at android.support.v4.app.FragmentActivity.onBackPressed(FragmentActivity.java:174)
Я прочитал о подобных проблемах в stackoverflow. Некоторые из них предлагают избежать метода замены, который я не использую. Транзакция, которая вызывает сбой при откате, выглядит следующим образом:
ft.remove(oldFrag).add(newFrag).addToBackStack(null).commit()
Другие комментарии говорят, что это может произойти, если вы используете переходы фрагментов, которые не могут закончить достаточно быстро, прежде чем пользователь снова вернется. Поскольку я использую переходные анимации на данных фрагментах, это может быть причиной. Однако удаление перехода не является выбором, и поскольку этот исключительно встречается на телефонах под управлением 2.3.x, и ошибка была введена путем обновления до lib 11 и sdk 4.2. Надеюсь, что Google исправит ее со следующей версией.
Есть ли похожие проблемы, информация о том, планируется ли это исправление в 4.2.1 или поддержка r12, или предложения о том, что я могу сделать, чтобы избежать ошибки?