如何摆脱 Android-Kotlin 中的 `Unresolved reference: NavController` 错误?

Posted

技术标签:

【中文标题】如何摆脱 Android-Kotlin 中的 `Unresolved reference: NavController` 错误?【英文标题】:How to get rid of `Unresolved reference: NavController` error in Android-Kotlin? 【发布时间】:2021-11-19 16:29:46 【问题描述】:

除了NavController,我在AppCompatActivity()layoutInflater 和下面提到的代码中遇到了同样的错误。

错误:Unresolved reference: NavController 等等...

我的代码:


package com.example.wordsapp

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.NavController
import androidx.navigation.NavHost
import androidx.navigation.ui.setupActionBarWithNavController
import com.example.wordsapp.databinding.ActivityMainBinding

/**
 * Main Activity and entry point for the app. Displays a RecyclerView of letters.
 */
class MainActivity : AppCompatActivity() 
    private lateinit var navController: NavController
    override fun onCreate(savedInstanceState: Bundle?) 
        super.onCreate(savedInstanceState)

        val binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHost
        navController = navHostFragment.navController
        setupActionBarWithNavController(navController)
    

    override fun onSupportNavigateUp(): Boolean 
        return navController.navigateUp() || super.onSupportNavigateUp()
    

【问题讨论】:

【参考方案1】:
    首先检查您是否可以构建项目。

如果项目可以构建,那么它可能是Kotlin/JVM mismatch。但如果您发现构建错误,请考虑检查您的依赖项。

如果上述解决方案没有解决错误,请尝试完全关闭android studio,然后重新启动。

【讨论】:

【参考方案2】:

要添加到 Dron 的答案 - 如果这些都不起作用,您也可以尝试 File > invalidate cache's and restart

【讨论】:

以上是关于如何摆脱 Android-Kotlin 中的 `Unresolved reference: NavController` 错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何摆脱 QDialog 中的调整大小句柄?

Android-Kotlin-代理和委托

android-kotlin JsonObject JsonArray 通过 POST 发送请求数据

Android-Kotlin简单计算器功能

Android-Kotlin在Fragment获取View

Android-Kotlin-配置/入门