plugins {
id 'com.android.application' version '7.2.1' apply false
id 'com.android.library' version '7.2.1' apply false
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
}
dependencies {
"android.arch.navigation:navigation-safe-args-gradle-plugin:$version_navigation"
}
task clean(type: Delete) {
delete rootProject.buildDir
}
原因:groovy.lang.MissingPropertyException:无法为类型为 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 的对象获取未知属性“version_navigation”。
最佳答案
您不能在项目模块 的build.gradle
的root 中使用dependencies
block 。正确的方法是在其中添加 buildscript
block 和 dependencies
,如下所示:
buildscript {
dependencies {
classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.5.1'
}
}
plugins {
id 'com.android.application' version '7.1.2' apply false
id 'com.android.library' version '7.1.2' apply false
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
请记住,您还可以选择遵循新的结构模式,而不是使用 dependency
block ,您可以使用 plugins
block :
plugins {
id 'com.android.application' version '7.1.2' apply false
id 'com.android.library' version '7.1.2' apply false
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
id 'androidx.navigation.safeargs' version '2.5.1' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
在 app 模块 的 build.gradle
中,它保持原样。
plugins {
// ...
id 'androidx.navigation.safeargs.kotlin'
}
您必须确保库的依赖项遵循相同的版本以避免出现问题。
当您需要多个 gradle 文件中的版本时,为了方便此版本控制,您还可以在 buildscript
中包含一个 ext
block build.gradle
来自 project module 的版本,并使用它代替 gradle 文件中的版本号。完整示例:
build.gradle
(项目)
buildscript {
ext {
navigation_ver = '2.5.1'
}
// if you want the 'old' way:
// dependencies {
// classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_ver"
// }
}
plugins {
id 'com.android.application' version '7.1.2' apply false
id 'com.android.library' version '7.1.2' apply false
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
// if you want the 'new' way:
id 'androidx.navigation.safeargs' version "$navigation_ver" apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.gradle
(应用模块)
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'androidx.navigation.safeargs.kotlin'
}
android {
// ...
}
dependencies {
// ...
implementation "androidx.navigation:navigation-ui-ktx:$navigation_ver"
implementation "androidx.navigation:navigation-fragment-ktx:$navigation_ver"
}
关于android - 我正在尝试使用安全参数,但是当我将依赖项添加到项目级别 build.gradle 时,它给了我这个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73206597/