【发布时间】:2012-11-24 14:38:42
【问题描述】:
自从我升级我的应用程序以使用 support 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()
其他 cmets 表示,如果您使用的片段转换在用户再次按下之前无法足够快地完成,则可能会发生这种情况。 由于我确实在给定的片段上使用了过渡动画,这可能是原因。但是,删除转换不是一种选择,因为这仅发生在运行 2.3.x 的手机上,并且该错误是通过升级到 lib 11 和 sdk 4.2 引入的,我希望谷歌将在下一个版本中修复它.
有没有人有类似的问题,是否计划在 4.2.1 中修复或支持 r12 的信息,或者建议我可以做些什么来规避错误?
【问题讨论】:
-
得到同样的东西,但使用
DialogFragment。 -
我偶尔也会通过 DialogFragment 得到它...我已经提交了报告 here。但还没有答案。
-
支持库 r12 出现相同错误。也将跟踪发布到 android 问题跟踪器。
标签: android fragment android-support-library