android - 升级后的 Fragment IllegalStateException
问题描述
目前,我androidx.fragment:fragment:1.1.0
在升级到最新的片段 sdkandroidx.fragment:fragment:1.2.4
应用程序后正在使用崩溃。相同的代码在 1.1.0 上运行,但在 1.2.4 崩溃报告上崩溃
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:4745)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:4696)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:4647)
at android.app.servertransaction.PauseActivityItem.execute(PauseActivityItem.java:46)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.view.ViewGroup.addViewInner(ViewGroup.java:5235)
at android.view.ViewGroup.addView(ViewGroup.java:5064)
解决方案
如果您在片段的 onCreateView 方法中使用类似下面的内容
View view = inflater.inflate(R.layout.fragment_layout, container);
然后用这个替换这个
View view = inflater.inflate(R.layout.fragment_layout, container,false);
推荐阅读
- php - Laravel 护照 7.5.1 - 复制声明
- excel - 这可以从excel工作表中操作oracle数据库吗
- sql - 如何在运算符 SQL Server 中构建动态?
- sql-server - 在 SQL Server 中读取指定 XML 节点的“名称”的 XML 并获取其“值”
- javascript - 如何在 MS Edge 中检测浏览器关闭事件?
- javascript - 上下文 API 没有返回被点击元素的 id
- r - R Shiny:在tabPanels之间切换会导致错误
- android - 致命异常:NoSuchMethodError:没有虚拟方法插入(IIII)Landroid/view/WindowInsets
- javascript - 以不同颜色读取和显示滑块值的功能
- java - Toast.setGravity() 在我的 AVD Nexus 6 API 30 中不起作用