我正在练习如何使用 SafeArgs 和其他一些 kotlin 工具。
即使添加了
SafeArgs
插件和类路径后,我仍然收到错误消息..
Cannot access class 'com.example.testingtaskmanager.ui.updatefragment.UpdateFragmentArgs'. Check your module classpath for missing or conflicting dependencies
这是添加的
SafeArgs
插件:
id 'androidx.navigation.safeargs.kotlin'
这是添加的
SafeArgs
类路径:
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5"
我什至尝试了其他
SafeArgs
插件,它仍然给出了相同的结果。
这是我尝试使用的其他安全参数:
id "androidx.navigation.safeargs"
编辑;
来自 build.gradle 应用程序/模块级别的更多插件
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
//
// id "androidx.navigation.safeargs"
id 'androidx.navigation.safeargs.kotlin'
id 'kotlin-parcelize'
}
来自 build.gradle 项目级别的更多插件
dependencies {
classpath "com.android.tools.build:gradle:7.0.3"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
//
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
如果有人仍然遇到同样的问题,很容易修复它,只需将其添加到您的 build.gradl
android {
.
.
.
buildFeatures{
dataBinding true
viewBinding true
}
sourceSets {
main {
kotlin {
srcDirs += 'build/generated/source/navigation-args'
}
}
}
}
当我从事项目时,我遇到了同样的错误。
我使用了
dataBinding
,然后错误与上面相同。
我通过重命名以小写字母开头的父文件夹名称解决了这个问题,并且仅
ViewModel
名称以大写字母开头。
在我的项目中,由于以下原因我遇到了这个问题
com.example.example.ui.UserModule.ViewModel.SettingViewModel
到
com.example.example.ui.userModule.viewModel.SettingViewModel