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

标签 android kotlin

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

  • 安卓工作室:4.1.2
  • compileSdkVersion: 29
  • 导航依赖项:
  • 实现“androidx.navigation:navigation-fragment-ktx:2.3.1”
  • 实现“androidx.navigation:navigation-ui-ktx: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
    
    两者都有效,但我仍然不知道为什么会收到此错误。还有什么我应该知道的可能会在将来造成问题的其他事情吗?
    提前感谢任何帮助!

    最佳答案

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

    navController.navigatorProvider.addNavigator(navigator)
    

    关于android - 警告 : NavController. setNavigatorProvider 只能从同一个库组中调用(groupId=androidx.navigation),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66313957/

    相关文章:

    android - 通过绑定(bind)单击提交时从 ViewModel 中清除 EditText

    android - 为 kotlin 扩展函数的基础对象附加上下文

    android - 如何为 Theme.Holo.Light.DialogWhenLarge 获取深色操作栏?

    android - 如何在 React Native 中存储/保存数据

    java - 安卓房间 "bad RuntimeInvisibleParameterAnnotations attribute"

    kotlin - Kotlin 光学数据类引用中 Unresolved reference

    android - 如何从gradle中排除kotlin文件

    android - 我在 Google API 2.1 中开发了应用程序,如果我在没有 Google API 的情况下在 android2.2 上运行,那么会发生什么?

    带有 ListView 的 Android Material Signature 元素

    android - 列表项宽度与对话框内的父级不匹配