Android: `androidx.navigation.NavArgs` не найден

Я получаю этот код ниже из Android: `androidx.navigation.NavArgs` не найден

Но получая эту ошибку ниже: потратьте уже больше 3 часов, но безуспешно. Android: `androidx.navigation.NavArgs` не найден

Пожалуйста, помогите мне решить эту ошибку.

DeepLinkFragmentArgsFlowStepFragmentArgsFlowStepFragmentDirections все это автоматически сгенерированный класс.
Prashant Jajal 02.03.2019 11:27
8
1
10 658
6

Ответы 6

На уровне приложения build.gradle добавьте следующее:

apply plugin: 'androidx.navigation.safeargs'

Обновлять:

Эта кодовая лаборатория очень старая, попробуйте не обновлять библиотеки.

apply plugin: 'androidx.navigation.safeargs' Уже есть на уровне приложения.
Prashant Jajal 02.03.2019 11:29

Какую версию Android Studio вы используете.

Hussnain Haidar 02.03.2019 11:34

Android-студия 3.3.1

Prashant Jajal 02.03.2019 11:35

или удалить всю папку сборки.

Hussnain Haidar 02.03.2019 11:42

Давайте продолжить обсуждение в чате.

Hussnain Haidar 02.03.2019 11:50

Try to add

classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha05"

Instead of

classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-rc02"

Не удалось найти androidx.navigation:safe-args-gradle-plugin:1.0.0-rc02.

Prashant Jajal 02.03.2019 11:47

В версии 3.3.1 Android Studio есть подобные проблемы, но решение простое. Закройте проект и снова импортируйте проект. Вы увидите результат.

Если вы используете kotlin и androidX, замените это

apply plugin: "androidx.navigation.safeargs"

с участием

apply plugin: "androidx.navigation.safeargs.kotlin"

и на уровне проекта build.gradle

dependencies {
    classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-alpha01"
}

на уровне приложения build.gradle

def nav_version = "2.1.0-alpha01"

implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version" 

Если вы используете котлин Ktx

implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

Надеюсь, это поможет и другим людям. мне тоже помогает

Изменить это

  implementation 'android.arch.navigation:navigation-fragment-ktx:2.2.0-alpha01'
  implementation 'android.arch.navigation:navigation-ui-ktx:2.2.0-alpha01'

к этому:

  implementation 'androidx.navigation:navigation-fragment-ktx:2.2.0-alpha01'
  implementation 'androidx.navigation:navigation-ui-ktx:2.2.0-alpha01'

Уведомление, что android.arch.navigation заменен на androidx.navigation

также обязательно примените этот плагин поверх build.gradle:

apply plugin: "androidx.navigation.safeargs.kotlin"

и это к зависимостям уровня проекта build.gradle:

 classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-rc01"

Я попробовал все, что написано выше, т.е. добавил все плагины и зависимости (что, впрочем, совершенно правильно), но я делал эту глупую ошибку -> Я создавал переменную navArgs вне фрагмента

Не->

private val args by navArgs<VideoCallFragmentArgs>()

class YourFragment : Fragment() {

     override fun onCreateView(
      inflater: LayoutInflater, container: ViewGroup?,
      savedInstanceState: Bundle?
          ): View? {
    return inflater.inflate(R.layout.fragment_video_call, container, false)
}
}

Всегда создавайте переменную navArgs внутри фрагмента.
Сделать ->

class YourFragment : Fragment() {

private val args by navArgs<VideoCallFragmentArgs>()

     override fun onCreateView(
      inflater: LayoutInflater, container: ViewGroup?,
      savedInstanceState: Bundle?
          ): View? {
    return inflater.inflate(R.layout.fragment_video_call, container, false)
}
}

Другие вопросы по теме