You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android官方CodeLab报错:lateinit属性navController未初始化

解决lateinit property navController has not been initialized报错

在跟随developer.android.com官方CodeLab开发时,遇到报错提示:lateinit property navController has not been initialized

解决方案步骤

  • 在MainActivity中,将应用栏(action bar)与navController关联,并将navController设为类变量以便在其他方法中调用:
class MainActivity : AppCompatActivity(R.layout.activity_main) {

    private lateinit var navController: NavController

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

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

        setupActionBarWithNavController(navController)
    }
}
  • 在同一类中重写onSupportNavigateUp()方法,让navController处理向上导航,若无法处理则回退至父类实现:
override fun onSupportNavigateUp(): Boolean {
    return navController.navigateUp() || super.onSupportNavigateUp()
}
  • 运行应用后,FlavorFragment等页面的返回按钮可正常工作,返回时会显示视图模型中正确的订单信息。

报错截图

Android Studio报错截图

内容的提问来源于stack exchange,提问作者Kelvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:20:42