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

Android Kotlin Fragment报错:navArgs无法作为函数调用,找不到invoke()方法

解决Fragment中navArgs调用报错的问题

核心原因

你遇到的问题本质是把生成的Args数据类当成可调用函数来用了,这类由Navigation组件自动生成的Args类是普通数据类,没有invoke()方法,自然不能用()调用。

具体解决办法

  • 修正navArgs的使用方式
    如果你用Kotlin委托来获取参数,正确写法是:

    private val args: YourFragmentArgsName by navArgs()
    

    不要写成val args = navArgs()或者val args = YourFragmentArgsName(),前者是误用委托的调用方式,后者是直接实例化Args类但没传入Bundle,都会触发报错。

  • 强制重新生成Args代码
    有时候Android Studio的注解处理器没同步生成代码,执行以下操作:

    • 点击Build > Clean Project,接着执行Build > Rebuild Project
    • 若还是不行,选择File > Invalidate Caches...,勾选Invalidate and Restart重启IDE,再重新构建项目
  • 检查导入包是否正确
    确保导入的是Navigation组件的正确委托:

    import androidx.navigation.navArgs
    

    避免导入其他同名的navArgs函数。

  • 替代方案:手动解析参数
    要是委托方式始终有问题,可以直接从Fragment的Arguments中解析:

    val args = YourFragmentArgsName.fromBundle(requireArguments())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:00:59