我正在尝试导入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
}
}
答案 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将提示导入类,然后导入,应该这样做。