Kotlin项目中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
相关产品推荐
相关产品推荐

