警告:只能从同一库组内调用NavController.setNavigatorProvider(groupId=androidx.navigation)

警告:只能从同一库组内调用NavController.setNavigatorProvider(groupId=androidx.navigation),android,kotlin,Android,Kotlin,我创建了一个新项目,在设置底部选项卡导航时遇到此警告 梯度信息 AndroidStudio:4.1.2 编译版本:29 导航依赖项: 实现“androidx.navigation:navigation fragment ktx:2.3.1” 实现“androidx.navigation:NavigationUIKTX:2.3.1” 我的代码: private fun setupBottomNavigationBar() { val navController = findNav

我创建了一个新项目,在设置底部选项卡导航时遇到此警告

梯度信息

  • AndroidStudio:4.1.2
  • 编译版本:29
  • 导航依赖项:
    • 实现“androidx.navigation:navigation fragment ktx:2.3.1”
    • 实现“androidx.navigation:NavigationUIKTX:2.3.1”
我的代码:

private fun setupBottomNavigationBar() {
    val navController = findNavController(R.id.nav_host_fragment)

    supportFragmentManager.findFragmentById(R.id.nav_host_fragment)?.let {
        val navigator = KeepStateNavigator(
            this,
            it.childFragmentManager,
            R.id.nav_host_fragment
        )

        // This line gives me warning
        navController.navigatorProvider += navigator
      
    }
}
// Solution 1
@SuppressLint("RestrictedApi")
private fun setupBottomNavigationBar() {


// Solution 2
// noinspection RestrictedApi
navController.navigatorProvider += navigator
尝试过的解决方案:

private fun setupBottomNavigationBar() {
    val navController = findNavController(R.id.nav_host_fragment)

    supportFragmentManager.findFragmentById(R.id.nav_host_fragment)?.let {
        val navigator = KeepStateNavigator(
            this,
            it.childFragmentManager,
            R.id.nav_host_fragment
        )

        // This line gives me warning
        navController.navigatorProvider += navigator
      
    }
}
// Solution 1
@SuppressLint("RestrictedApi")
private fun setupBottomNavigationBar() {


// Solution 2
// noinspection RestrictedApi
navController.navigatorProvider += navigator
这两种方法都有效,但我仍然不知道为什么会出现这个错误。还有什么我应该知道的,可能在将来造成问题的吗


任何帮助都将提前感谢

您可以使用以下代码避免警告:

navController.navigatorProvider.addNavigator(navigator)