Android setupWithNavController(navController)使用提供的参数无法调用以下函数

Android setupWithNavController(navController)使用提供的参数无法调用以下函数,android,kotlin,navigation,Android,Kotlin,Navigation,Android Studio无法识别setupWithNavController(navController)的正确导入 但它在谷歌I/O应用程序中起作用: 我创建了一个hello world项目,其中只添加了NavHostFragment: 活动\u main.xml: <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/and

Android Studio无法识别
setupWithNavController(navController)
的正确导入

但它在谷歌I/O应用程序中起作用:

我创建了一个hello world项目,其中只添加了
NavHostFragment

活动\u main.xml:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <fragment
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="?android:attr/actionBarSize"
        app:defaultNavHost="true"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="FragmentTagUsage" />
</androidx.constraintlayout.widget.ConstraintLayout>
dependencies {
    constraints {
        api "androidx.navigation:navigation-fragment-ktx:2.3.5"
        api "androidx.navigation:navigation-ui-ktx:2.3.5"
        api "com.google.android.material:material:1.3.0"
    }
    implementation "androidx.navigation:navigation-fragment-ktx:2.3.5"
    implementation "androidx.navigation:navigation-ui-ktx:2.3.5"
    implementation "com.google.android.material:material:1.3.0"
}

应用程序没有将
setupWithNavController
navController
视为参数方法。但在谷歌I/O应用程序中,它确实如此

我尝试直接引用整个包名,但它只识别NavigationUI:

单击导入时,我确实看到了正确的库:

这是正确的类别:


我尝试了无效缓存/重新启动和清理,构建所有功能,但没有成功。

您需要导航视图才能使用安装导航控制器看起来像这样,希望对您有所帮助

MainActivity.kt

package com.example.yourpackagename

import android.os.Bundle
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val navView: BottomNavigationView = findViewById(R.id.nav_view)

        val navController = findNavController(R.id.nav_host_fragment)
 
        val appBarConfiguration = AppBarConfiguration(setOf(
                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications))
        setupActionBarWithNavController(navController, appBarConfiguration)
        navView.setupWithNavController(navController)
    }
}
activity_main.xml

检查如何在build.gradleu中添加导航相关依赖项我们需要一个
navigationView
来使用
setupWithNavController
setupWithNavController
BottomNavigationView
的扩展。您正在尝试在
AppCompatActivity
上调用它。