Android-Kotlin如何解决Unresolved reference: NavController等未解析引用报错
所有Unresolved reference类报错均为项目依赖配置缺失、Gradle未同步,或IDE索引异常导致,按以下步骤修复即可:
1. 检查模块级build.gradle(Module: app)配置
确认文件中包含以下配置项:
android { // 确保开启View Binding,解决ActivityMainBinding引用报错 buildFeatures { viewBinding true } } dependencies { // 解决AppCompatActivity、layoutInflater引用报错 implementation "androidx.appcompat:appcompat:1.6.1" // 解决NavController、NavHost等Navigation组件引用报错 implementation "androidx.navigation:navigation-fragment-ktx:2.5.3" implementation "androidx.navigation:navigation-ui-ktx:2.5.3" }
注:版本号可根据你项目的compileSdk版本调整为兼容的最新稳定版
2. 同步Gradle配置
修改完成后点击Android Studio右上角的「Sync Now」按钮,等待Gradle同步完成,同步过程中不要中断操作。
3. 修复IDE索引异常
如果同步完成后仍有报错,执行IDE缓存清理操作:点击顶部菜单栏File -> Invalidate Caches...,勾选「Clear file system cache and local history」后点击「Invalidate and Restart」,等待IDE重启完成重新索引即可。
你提供的参考代码无语法错误,配置完成后可正常运行:
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() } }
内容的提问来源于stack exchange,提问作者user16537655
相关产品推荐
相关产品推荐

