Attempt to invoke method ‘ androidx.fragment.app.FragmentManager.isDestroyed()‘ on a nullpoint 问题解决

由于项目需求,最近项目适配了一波androidX以及android P,中间遇到了如题所示的错误,最开始以为是androidX的版本问题,各种百度查资料,发现没有一个是有效的,无奈之下只好自己查看源码,看看是不是自身项目代码的问题。

关于AndroidX的适配网上有很多教程,百度一下就知道!

话不多说,开始看代码,既然是看源码,那就从报错的地方开始,一步一步的点进去,一番源码畅游后终于是有所发现,如下图:
在这里插入图片描述
图上标记很清楚了,可以看到,由于Fragment销毁后的onDetach()函数并不是最后执行代码,在他之后对mChildFragmentManager对象进行了处理(主要是分发子fragment的销毁事件,这里不多赘述),正常情况下是没有问题的。但,抵不住自己作死呀!!

具体原因不可知,但项目中的操作确实是导致了这次的问题的原因,具体如下图:
在这里插入图片描述
可以从图中看到,这哥们在onDetach()中直接反射获取到了mChildFragmentManager对象实例,获取到就算了,居然直接设为null,具体代码是mChildFragmentManager.set(this,null),我了个大草!!这不报空指针才怪,所以直接注释掉就好了。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值