因为我升级了我的应用程序以使用支持 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 引入的,我希望谷歌将在下一个版本中修复它。
有没有人有类似的问题,有关是否计划在 4.2.1 中修复或支持 r12 的信息,或者建议我可以做些什么来规避错误?