【问题标题】:Why is Android Studio auto-importing android.app.Fragment instead of androidx.fragment.app.Fragment?为什么 Android Studio 自动导入 android.app.Fragment 而不是 androidx.fragment.app.Fragment?
【发布时间】:2019-07-03 07:28:53
【问题描述】:

每当我从 Android Studio 的 Fragment Wizard 制作 Fragment 时,我的 Android Studio 项目(迁移到 AndroidX)(TheInstrumentals)会自动导入 android.app.Fragment。如何让它自动导入 androidx.fragment.app.Fragment?

我尝试从另一个项目 (ViewPagerTest)(也迁移到 AndroidX)创建一个新的空白片段,它会自动导入 androidx.fragment.app.Fragment,而不是已弃用的 android.app.Fragment。

我的另一个项目(Udacity 项目)(不在 AndroidX 中)在完成相同操作时会自动导入 android.support.v4.app.Fragment。

com.mydomain.theinstrumentals.BlankFragment.java:

package com.mydomain.theinstrumentals;

import ...
import android.app.Fragment; //imported automatically
import ...

public class BlankFragment extends Fragment /*Fragment was strikedthrough */ {...}

com.mydomain.viewpagertest.BlankFragment.java:

package com.mydomain.viewpagertest;

import androidx.fragment.app.Fragment; //imported automatically

import ...

public class BlankFragment extends Fragment {...}

com.example.android.miwok.NumbersFragment:

package com.example.android.miwok.NumbersFragment;

import ...
import android.support.v4.app.Fragment; //imported automatically
import ...

public class NumbersFragment extends Fragment {...}

【问题讨论】:

  • 我读过一篇相关文章:stackoverflow.com/questions/38797829/… 但它很旧,并没有解释为什么其他项目会自动导入正确的 Fragment (androidx.fragment.app.Fragment)。
  • 清理构建您的项目并检查您的导入设置一次!
  • Novo,我尝试清理和重建我的项目,但它没有做任何事情。另外,您检查我的导入设置一次是什么意思?

标签: android android-studio android-fragments android-support-library androidx


【解决方案1】:

我对链接帖子的回答并不老 - 导入仍然按字母顺序排列,自动导入选项可在设置中修改

简短的回答 - AndroidX 是额外的,稍后在类路径上,而不是在核心 API 上,因此它稍后会在导入菜单中列出

另外,片段向导使用内部模板文件为所有组件创建新类,并且不能假设您将 AndroidX 作为代码的一部分。如果是这样,则必须将这些插件插入到 Gradle 构建中,例如

【讨论】:

  • 我的 gradle 构建明确实现了 AndroidX 组件,不,它不只是按字母顺序排列的,因为我的其他项目实现了 AndroidX 版本而不是 android.app 版本。两个项目都以相同的方式迁移到 AndroidX(通过单击重构中的迁移到 AndroidX)。
  • 我不确定你的意思。你是说导入菜单先显示AndroidX Fragments?你的项目是否使用类并不重要
  • 您所要求的似乎是这里的第一条评论 - 内部 IDE 模板无法轻松可靠地修改stackoverflow.com/questions/35964204/…
  • 没有。我不知道首先列出了什么。只是,另一个项目(ViewPagerTest)会自动导入 androidx.fragment,即使 android.app 是应该首先列出的,因为你说它是按字母顺序排列的。
  • 没有。不仅仅是空白的 Java 文件。当我通过转到文件>新建>片段>空白片段创建片段时,导入的片段在第一个项目中是错误的片段(android.app.Fragment),而在后一个项目中导入了正确的片段(androidx.fragment.app .Fragment)
猜你喜欢
  • 2021-03-21
  • 2020-10-11
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2015-12-05
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多