无法导入android.support.v4.app.Fragment,但可以导入FragmentManager

时间:2018-12-18 16:23:51

标签: android kotlin

我正在尝试导入android.support.v4.app.Fragment,但出现错误“未解决的参考:片段”。我无法将其导入到项目的任何位置。现在,我正在尝试将其导入Fragment类。

但是,如果我尝试导入android.support.v4.app.FragmentManager或android.support.v4.app内部的任何其他类,它就可以正常工作。我尝试了同步gradle,使缓存无效并搜索Internet。我似乎找不到问题所在。

这是我的片段类

angularfire2.

这是我的build.gradle文件

package com.example.johnDoe.storeapp

import android.app.Fragment
import android.support.v4.app.Fragment // Gives the error "Unresolved Reference: Fragment"
import android.support.v4.app.FragmentManager //Works fine
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup

class StoresFragment : Fragment(){

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup, savedInstanceState: Bundle): View {
    val view: View
    view = inflater.inflate(R.layout.fragment_stores, container, false)



    return view
}
}

2 个答案:

答案 0 :(得分:1)

我相信您明确需要com.android.support:support-fragment:28.0.0依赖项(因为support-v4库已拆分),或者仅包含implementation 'com.android.support:support-v4:28.0.0'即可包含support-v4中的所有内容。

来自https://developer.android.com/topic/libraries/support-library/packages#v4

  

在支持库版本24.2.0之前,只有一个v4支持库。该库被分成多个模块以提高效率。

     

为了向后兼容,如果您在Gradle脚本中列出了support-v4,则APK将包含所有v4模块。

尽管现在我使用的是AndroidX。

答案 1 :(得分:0)

如果仍然有人遇到此问题,请转移到 AndroidX ,但请确保您已打开或更新项目以使用支持库的最终版本:28.0.0版。

在Android Studio的菜单栏中

打开重构,然后点击迁移到 AndroidX 。通常,所有导入将被更新,否则将使用以下导入:

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

那应该解决它,否则将光标移到错误上,Android Studio将提示导入类,然后导入,应该这样做。