You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已迁移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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:28:33