ошибка
Невозможно создать экземпляр фрагмента androidx.navigation.fragment.NavHostFragment: убедитесь, что имя класса существует, является открытым и имеет пустой открытый конструктор.
ActivityLayout
<fragment
android:id="@+id/my_nav_host_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="androidx.navigation.fragment.NavHostFragment"
app:defaultNavHost="true"
app:navGraph="@navigation/app_nav" />
Деятельность
class HomeActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
}
}
Фрагмент
class MovieListFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_movie_list, container, false)
}
}
Используемая зависимость:
implementation('android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha07') {
exclude group: "com.android.support"
}
implementation('android.arch.navigation:navigation-ui-ktx:1.0.0-alpha07') {
exclude group: "com.android.support"
}
Это происходит, когда вы неправильно настроили navigationGraph
. Может быть, это ошибка или нет. Ниже приведены причины, по которым произошла эта ошибка. Случайно вы добавили HomeActivity
в вашу navigationGraph
HomeActivity
а также добавили MovieListFragment
и подключили MovieListFragment
к HomeActivity
. А затем удалите HomeActivity из графика. Таким MovieListFragment
идентификатор MovieListFragment
не может быть изменен на карте. Я нашел эту проблему в своем проекте. Событие, я снова открываю проект, но ничего удачного. Поэтому я удаляю MovieListFragment
из графа (только из графа). Затем снова добавьте MovieListFragment
после чего он снова MovieListFragment
.
В моем проекте
HomeActivity
былоMainActivity
аMovieListFragment
былоDashboardFragment
.
попробуй с этим
dependencies {
def nav_version = "2.1.0-alpha01"
implementation "androidx.navigation:navigation-fragment:$nav_version" // For Kotlin use navigation-fragment-ktx
implementation "androidx.navigation:navigation-ui:$nav_version" // For Kotlin use navigation-ui-ktx
}