我正在处理一个获得崩溃报告但没有意义的应用。
似乎发生的场景(根据stackTrace)是用户点击导航抽屉上的一个项目,该项目又替换了活动的片段容器上显示的当前片段:
...
transaction.setCustomAnimations(R.anim.slide_in_from_left, R.anim.fade_out).replace(R.id.activity_main__fragmentContainer, fragmentToShow).commit(); // <=crash here
...
崩溃报告是:
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.u.w(FragmentManager.java:1365)
at android.support.v4.app.u.a(FragmentManager.java:1383)
at android.support.v4.app.j.a(BackStackRecord.java:636)
at android.support.v4.app.j.a(BackStackRecord.java:615)
然后是我写过的专栏,以及点击处理(实际上是一个简单的onClickListener)。
在Google上搜索,我发现了许多可能的解决方案,但针对不同的类似问题。
崩溃本身很少见,但我无法找到原因。 这个问题怎么可能存在?
最近的支持库(到22.1.0)的升级是否已经修复了?之前使用的应用程序版本只是它之前的一个版本。
我可以添加一个检查当前活动是否没有被销毁,但它太奇怪......
答案 0 :(得分:0)
既然你的问题还不完整......我不能说一个确切的解决方案...... 我认为你在完全加载片段之前要求动画... 即,在将布局文件膨胀到容器之前... 尝试在之后调用动画,
view = inflater.inflate(R.layout.fragment,container,false);