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

Android Navigation组件navArgs生成文件报错求助

Android Navigation安全导航参数自动生成navArgs文件异常问题

异常列表

自动生成的navArgs文件出现以下错误:

  • Function invocation 'map(...)' expected
  • No value passed for parameter 'transform'
  • Type mismatch: inferred type is List but Array? was expected
  • Unresolved reference: it

相关配置代码

依赖配置

def nav_version = "2.5.3"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

kotlin_version = '1.7.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

implementation 'androidx.navigation:navigation-fragment-ktx:2.6.0-alpha04'
implementation 'androidx.navigation:navigation-ui-ktx:2.6.0-alpha04'

导航图配置

<argument
    android:name="bulkForwardPackages"
    app:argType="app.px.packagex.models.domainmodels.MemberPackageItemDomainModel[]" />

调用代码(Any.kt)

navigate(DashboardListingFragmentDirections.actionDashboardListingFragmentToBulkForwardPackages(
                    listOf(memberPackage).toTypedArray(),
                    getMemberDetailsFromPackage(memberPackage)
                )
            )

Parcelable模型类

@Parcelize
data class MemberPackageItemDomainModel(
val packageId: Int = 0,
val memberId: Int = 0,
val building_id: Int = 0,
val mailroom_id: Int = 0,
val createdAt: String = "",
val created_by: String = "",
....
): Parcelable {}

解决方案

1. 统一Navigation组件版本

当前Safe Args插件版本(2.5.3)与Navigation库依赖版本(2.6.0-alpha04)不匹配,这是生成代码异常的核心原因。Safe Args插件必须与Navigation库版本严格一致。

修改依赖配置,统一为稳定版2.5.3:

def nav_version = "2.5.3"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

若需使用alpha版本,同步升级Safe Args插件版本:

def nav_version = "2.6.0-alpha04"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

2. 清理并重建项目

执行以下操作确保生成正确的navArgs文件:

  • 运行Gradle任务:clean → build
  • 或在Android Studio中执行File → Invalidate Caches... → Invalidate and Restart

3. 验证参数传递逻辑

调用代码中listOf(memberPackage).toTypedArray()写法正确,符合导航图数组类型参数要求;模型类的@Parcelize注解实现也无问题,无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:40:47