已迁移AndroidX的项目为何自动导入android.app.Fragment而非androidx版本?
解决Android Studio创建Fragment自动导入旧版
android.app.Fragment的问题 这问题我之前也碰到过,其实就是项目配置或者AS代码模板的小细节没同步好,咱们一步步排查解决:
1. 确认项目AndroidX配置完全生效
先检查你的TheInstrumentals项目核心配置,确保AndroidX的开关已经正确开启:
- 打开项目根目录的
gradle.properties文件,确认以下两行配置存在且为true:android.useAndroidX=true android.enableJetifier=true - 打开
app/build.gradle,检查compileSdkVersion和targetSdkVersion至少在28以上(AndroidX最低要求API 28),同时确认Fragment依赖是AndroidX版本:implementation 'androidx.fragment:fragment:1.6.1' // 可替换为最新稳定版本
2. 修改Android Studio的Fragment代码模板
有时候AS自带的代码模板没同步更新到AndroidX,导致生成的代码还是旧的导入:
- 打开AS设置(Windows:
File > Settings;Mac:Android Studio > Settings) - 找到
Editor > File and Code Templates,切换到Files标签 - 选中你使用的Fragment模板(比如
Blank Fragment) - 把模板里的
import android.app.Fragment;改成import androidx.fragment.app.Fragment; - 同时确认类继承部分是
public class ${NAME} extends Fragment,没有引用旧类
3. 清理缓存并重启Android Studio
缓存残留经常会导致配置不生效,这一步很关键:
- 点击
File > Invalidate Caches... - 选择
Invalidate and Restart,等待AS重启完成
做完这些操作后,再创建新的Fragment,应该就会自动导入androidx.fragment.app.Fragment了。你的ViewPagerTest项目能正常生成AndroidX的Fragment,说明它的模板和配置都是正确的;未迁移的项目自动用android.support.v4.app.Fragment则是AS根据项目配置自动适配的正常表现。
内容的提问来源于stack exchange,提问作者hamthenormal
相关产品推荐
相关产品推荐

