Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 崩溃删除片段大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的平板电脑崩溃对我来说非常神秘:

java.lang.NullPointerException: Attempt to read from field 'int android.support.v4.app.Fragment.mContainerId' on a null object reference                                                                          
   at android.support.v4.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1012)                                                                          
   at android.support.v4.app.FragmentTransition.calculateFragments(FragmentTransition.java:971)                                                                          
   at android.support.v4.app.FragmentTransition.startTransitions(FragmentTransition.java:95)                                                                          
   at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2143)                                                                          
   at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2098)                                                                          
   at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2008)                                                                          
   at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:710)                                                                          
   at android.os.Handler.handleCallback(Handler.java:751)                                                                          
   at android.os.Handler.dispatchMessage(Handler.java:95)                                                                          
   at android.os.Looper.loop(Looper.java:154)                                                                          
   at android.app.ActivityThread.main(ActivityThread.java:6077)                                                                          
   at java.lang.reflect.Method.invoke(Native Method)                                                                          
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)                                                                          
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

它只发生在我的api 24 Pixel C上.调试模式无法帮助我找出它的位置.当我删除一个删除片段的按钮时会发生这种情况,但代码的“片段删除”部分会被正确执行,执行我的OnClickListener后会发生一些事情.

删除了交易动画并遇到了同样的崩溃.

以前有人经历过吗?

谢谢

解决方法

似乎解决方案不是保留片段的引用,而是使用标记找到它:

之前:

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
courseLauncherFragment = CourseLauncherFragment.newInstance(courseId);
fragmentTransaction.replace(R.id.launcher_finish_frame_layout,courseLauncherFragment);
fragmentTransaction.commit();
getSupportFragmentManager().executePendingTransactions();

然后删除它:

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.slide_in_left,R.anim.slide_out_left);
fragmentTransaction.remove(courseLauncherFragment);
fragmentTransaction.commit();

现在 :

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.launcher_finish_frame_layout,CourseLauncherFragment.newInstance(courseId),LAUNCHER_FRAGMENT_TAG);
fragmentTransaction.commit();
getSupportFragmentManager().executePendingTransactions();

然后 :

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.slide_in_left,R.anim.slide_out_left);
Fragment fragment = fragmentManager.findFragmentByTag(LAUNCHER_FRAGMENT_TAG);
fragmentTransaction.remove(fragment);
fragmentTransaction.commit();

大佬总结

以上是大佬教程为你收集整理的android – 崩溃删除片段全部内容,希望文章能够帮你解决android – 崩溃删除片段所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: