问题描述:

练习使用Fragment时,发现日志中报错:

Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class com.example.myapplication.leftFragment that is not a Fragment

 

报错原因:

Fragment是Android3.0(API Level 11)才开始引入,旧的API不能直接使用android.app.Fragment;

而兼容低版本的Fragment放在了android.support.v4.jar的兼容包;

但是Android的布局文件中使用的<fragment>节点默认是使用android.app.Fragment中的Fragment。

如果想使用android.support.v4.app.Fragment,需要相应Activity继承android.support.v4.app.FragmentActivity;

 

解决方法:

1.更改默认的import androidx.fragment.app.Fragment为android.app.Fragment;

2.不更改默认Fragment包的情况下,相应Activity继承FragmentActivity。

 

参考:

Android: Fragment (Trying to instantiate a class that is not a Fragment) - alvin.zhang - 博客园 (cnblogs.com)

posted on 2022-06-18 12:53  我就像奶油  阅读(546)  评论(0)    收藏  举报