Невозможно создать экземпляр фрагмента androidx.navigation.fragment.NavHostFragment - PullRequest
0 голосов
/ 05 ноября 2018

Error

Невозможно создать экземпляр фрагмента 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"
}

Ответы [ 2 ]

0 голосов
/ 24 июля 2019

Это происходит, когда вы неправильно настроили navigationGraph. Может быть, это ошибка или нет. Ниже приведены причины, по которым произошла эта ошибка. Случайно вы добавляете HomeActivity в ваш navigationGraph, а также добавляете MovieListFragment и подключаете MovieListFragment к HomeActivity. А затем удалите HomeActivity из графика. Таким образом, идентификатор MovieListFragment, который не изменился, может быть криптом карты. Я нашел эту проблему в своем проекте. Событие, я снова открываю проект, но ничего удачного Поэтому я удаляю MovieListFragment из графика (только из графика). Затем снова добавьте MovieListFragment, затем он снова заработает.

В моем проекте HomeActivity было MainActivity и MovieListFragment был DashboardFragment.

0 голосов
/ 20 марта 2019

попробуйте с этим

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...