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
感谢两位大佬的博客。
解决Androidx.Fragment.App.Fragment加载报错问题
当遇到在Android应用中使用Androidx.fragment.app.Fragment加载时出现崩溃的问题,通常错误信息指向XML布局文件。但实际情况可能并非XML错误。问题在于Activity的继承。解决方法是将Activity改为继承FragmentActivity或AppCompatActivity。这两个类都适用于Fragment的正确加载,其中AppCompatActivity继承于FragmentActivity。通过修改Activity的基类,可以成功解决此问题。
1929

被折叠的 条评论
为什么被折叠?



