raamcosta / compose-destinations

Annotation processing library for type-safe Jetpack Compose navigation with no boilerplate.
https://composedestinations.rafaelcosta.xyz
Apache License 2.0
3.14k stars 129 forks source link

Could not find Navigator with name "BottomSheetNavigator". You must call NavController.addNavigator() for each navigation type #657

Open yoobi opened 2 weeks ago

yoobi commented 2 weeks ago

Hello,

This is to re-open the #532. I have the same issue I'm using

// compose
def compose_version = "1.6.7"
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.material:material:$compose_version"
implementation "androidx.compose.foundation:foundation:$compose_version"
implementation "androidx.compose.material:material-navigation:1.7.0-beta01"

def compose_destinations_version = "1.10.2"
implementation "io.github.raamcosta.compose-destinations:animations-core:$compose_destinations_version"
ksp "io.github.raamcosta.compose-destinations:ksp:$compose_destinations_version"

I wanted to use androidx.compose.material.navigation.ModalBottomSheetLayout() because com.google.accompanist.navigation.material.ModalBottomSheetLayout is deprecated but it seems that the version 1.10.2 is still using com.google.accompanist.navigation in internal

java.lang.IllegalStateException: Could not find Navigator with name "BottomSheetNavigator". You must call NavController.addNavigator() for each navigation type.
    at androidx.navigation.NavigatorProvider.getNavigator(NavigatorProvider.kt:67)
    at androidx.navigation.NavigatorProvider.getNavigator(NavigatorProvider.kt:49)
    at com.google.accompanist.navigation.material.NavGraphBuilderKt.bottomSheet(NavGraphBuilder.kt:60)
    at com.ramcosta.composedestinations.spec.DestinationStyleBottomSheetKt.addComposable(DestinationStyleBottomSheet.kt:52)
    at com.ramcosta.composedestinations.animations.AnimatedNavHostEngineKt$lambda$1.invoke(AnimatedNavHostEngine.kt:58)
    at com.ramcosta.composedestinations.animations.AnimatedNavHostEngineKt$lambda$1.invoke(AnimatedNavHostEngine.kt:57)
    at com.ramcosta.composedestinations.spec.DestinationStyleKt.addActivityDestination(DestinationStyle.kt:220)
    at com.ramcosta.composedestinations.DefaultNavHostEngine.composable(DefaultNavHostEngine.kt:123)
    at com.ramcosta.composedestinations.DestinationsNavHostKt.addNavGraphDestinations(DestinationsNavHost.kt:115)
    at com.ramcosta.composedestinations.DestinationsNavHostKt.access$addNavGraphDestinations(DestinationsNavHost.kt:1)
    at com.ramcosta.composedestinations.DestinationsNavHostKt$DestinationsNavHost$2.invoke(DestinationsNavHost.kt:77)
    at com.ramcosta.composedestinations.DestinationsNavHostKt$DestinationsNavHost$2.invoke(DestinationsNavHost.kt:71)
    at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:390)
    at com.ramcosta.composedestinations.DefaultNavHostEngine.NavHost(DefaultNavHostEngine.kt:79)
    at com.ramcosta.composedestinations.DestinationsNavHostKt.DestinationsNavHost(DestinationsNavHost.kt:71)

Is it possible to use androidx.compose.material.navigation instead ?