У меня есть фрагмент, который использует:
val action = LoginFragmentDirections.actionLoginToHome()
findNavController().safeNavigate(action)
и XML графа навигации объявлен как:
<fragment
android:id = "@+id/loginFragment"
android:name = "com.myapp.LoginFragment"
android:label = "login_fragment"
tools:layout = "@layout/login_fragment">
<action
android:id = "@+id/action_login_to_home"
app:destination = "@+id/homeFragment"
app:launchSingleTop = "true"
app:popUpTo = "@navigation/nav_graph_main"
app:popUpToInclusive = "false" />
</fragment>
Компилятор Android Studio не выдает никаких ошибок, и я даже могу перейти от функции actionLoginToHome() к XML-файлу, используя cmd click. Однако при сборке приложения компиляция gradle выдает ошибку:
**Unresolved reference: actionLoginToHome**
Корень Gradle:
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.2"
Модуль Gradle:
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'androidx.navigation.safeargs.kotlin'
}
... зависимости ..
implementation "androidx.navigation:navigation-fragment-ktx:2.5.2"
implementation "androidx.navigation:navigation-ui-ktx:2.5.2"
Хорошо Решено,
Граф представлял собой вложенный XML нескольких переходов, один из фрагментов переходов во вложенных файлах имел тот же идентификатор и действие, что и проблемный, вероятно, из-за неправильного копирования и вставки.