My app implement navigation controller. I got this error when try to navigate to another fragment within navigation graph.
My first MovieFragment has deep link to MovieDetailFragment.
java.lang.NullPointerException: Attempt to invoke virtual method 'int io.ak1.Bubble.getId()' on a null object reference
at io.ak1.BubbleTabBar.setSelectedWithId(BubbleTabBar.kt:69)
at com.kadon.moviebasejetpack.MainActivity.onCreate$lambda-1(MainActivity.kt:40)
at com.kadon.moviebasejetpack.MainActivity.lambda$m7AD07XFDrhvcoED8pyMVzjbbRU(Unknown Source:0)
at com.kadon.moviebasejetpack.-$$Lambda$MainActivity$m7AD07XFDrhvcoED8pyMVzjbbRU.onDestinationChanged(Unknown Source:2)
at androidx.navigation.NavController.dispatchOnDestinationChanged(NavController.java:504)
at androidx.navigation.NavController.navigate(NavController.java:1149)
at androidx.navigation.NavController.navigate(NavController.java:944)
at androidx.navigation.NavController.navigate(NavController.java:877)
at androidx.navigation.NavController.navigate(NavController.java:863)
at com.kadon.moviebasejetpack.ui.movie.MovieFragment.onClickedCharacter(MovieFragment.kt:56)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val bubble = binding.bubbleTabBar
val navHostFragment = supportFragmentManager.findFragmentById(
R.id.nav_host_fragment_activity_main
) as NavHostFragment
navController = navHostFragment.navController
appBarConfiguration = AppBarConfiguration(navController.graph)
setupActionBarWithNavController(navController, appBarConfiguration)
bubble.addBubbleListener { id ->
bubble.onNavDestinationSelected(id, navController)
}
navController.addOnDestinationChangedListener { _, destination, _ ->
bubble.setSelectedWithId(destination.id, false)
}
}
private fun onClickedCharacter(id: Int) {
findNavController().navigate(
R.id.action_navigation_movie_to_navigation_movie_detail,
bundleOf("id" to id)
)
}