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

Kotlin项目中Safe Args未生成DishListFragmentDirections类求助

解决Navigation Safe Args DishListFragmentDirections 未解析问题

核心问题分析

你当前的配置错误在于Safe Args插件的应用方式和依赖引入完全错误,不是将插件作为implementation依赖,而是需要在Gradle插件块中声明并应用。

修正步骤

1. 更新项目级build.gradle.kts

在顶层插件块中添加Navigation Safe Args插件的别名,确保所有模块都能引用到:

plugins {
    alias(libs.plugins.androidApplication) apply false
    alias(libs.plugins.jetbrainsKotlinAndroid) apply false
    alias(libs.plugins.androidx.navigation.safe.args.kotlin) apply false
}

2. 修正模块级build.gradle.kts

  • 在plugins块中添加Safe Args Kotlin插件
  • 移除错误的navigation.safe.args.generator和navigation.safe.args.gradle.plugin依赖,添加正确的Navigation UI依赖

修改后的配置:

plugins {
    alias(libs.plugins.androidApplication)
    alias(libs.plugins.jetbrainsKotlinAndroid)
    alias(libs.plugins.androidx.navigation.safe.args.kotlin) // 新增Safe Args插件
}

android {
    namespace = "com.example.myapplication"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.myapplication"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }

    buildFeatures {
        viewBinding = true
    }

}

dependencies {

    implementation(libs.androidx.core.ktx)
    implementation(libs.androidx.appcompat)
    implementation(libs.material)
    implementation(libs.androidx.activity)
    implementation(libs.androidx.constraintlayout)
    implementation(libs.androidx.navigation.fragment)
    implementation(libs.androidx.navigation.ui) // 新增Navigation UI组件依赖
    // 移除以下两行错误的插件依赖声明
    // implementation(libs.androidx.navigation.safe.args.generator)
    // implementation(libs.androidx.navigation.safe.args.gradle.plugin)
    testImplementation(libs.junit)
    androidTestImplementation(libs.androidx.junit)
    androidTestImplementation(libs.androidx.espresso.core)
}

3. 同步并重建项目

  • 点击Android Studio右上角的Sync Project with Gradle Files按钮同步配置
  • 执行Build > Clean Project,然后Build > Rebuild Project

4. 确认导航图配置

确保你的导航图(nav_graph.xml)中:

  • 已正确添加DishListFragment和DishDetailFragment
  • 已创建从DishListFragment到DishDetailFragment的Action,且Action有唯一ID

完成以上步骤后,DishListFragmentDirections类会自动生成,IDE将不再报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:15:34