Error inflating class fragment解决方案

androidx.fragment.app.Fragment 加载报错

错误内容如下

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.xxx, PID: 15570
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.xxx/com.android.xxx.XXXActivity}:
android.view.InflateException: Binary XML file line #9 in com.android.xxx/xxxx_fragment_layout:
Binary XML file line #9 in com.android.xxx/xxxx_fragment_layout:
Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3323)
… …

原因分析

看报错内容,还以为是xml文件有问题:
xxxx_fragment_layout:Binary XML file line #9
在这里插入图片描述
其实,这一行并没有问题,xml文件也没问题。

查资料

网上查资料,给出的很多方法都是很类似的,就是修改Fragment的引用包:
1)import android.app.Fragment; —> import android.support.v4.app.Fragment;
2)android:name=“com.android.xxx.xxxxFragment” 检查该路径对不对。

这应该是以前的解决方法。

印证

不过我用的Fragment的包名是androidx的:
androidx.fragment.app.Fragment;

而且android.support.v4.app 已经找不到Fragment了。

解决方法

你调用Fragment的Activity继承的父类不要再使用Activity,即
public class XXXActivity extends Activity

要修改为以下:
1)public class XXXActivity extends FragmentActivity
2)public class XXXActivity extends AppCompatActivity
这样修改,再运行程序就OK了。

为啥两个都可以呢?其实
public class AppCompatActivity extends FragmentActivity

参考博客

1)https://blog.csdn.net/downanddusk/article/details/109230922
2)https://blog.csdn.net/songyachao/article/details/51261748
感谢两位大佬的博客。


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值