【问题标题】:Could not set unknown property 'nav_version' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler无法为 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象设置未知属性“nav_version”
【发布时间】:2020-02-16 17:06:31
【问题描述】:

我试图添加导航依赖项以在我的项目中使用导航图,而 android studio 抛出了这个错误。

这是我的项目 Gradle 文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()
        nav_version = "2.3.0-alpha01" //extra property, used like variables
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

如您所见,我添加了 $nav_version 依赖项和 nav_version 变量。但是,android studio 会抛出“无法为 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象设置未知属性 'nav_version'”错误。我想知道它是否与 Gradle 版本或我的 Kotlin 版本有关。我试图清理并重新构建我的项目,但没有奏效。我想知道是否有人遇到过类似的事情。

【问题讨论】:

    标签: java android gradle kotlin navigation


    【解决方案1】:

    它应该是应用级别 build.gradle 的一部分。

    类似

    dependencies {
      def nav_version = "2.3.0-alpha01"
    
      // Kotlin
      implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
      implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
    
      // Dynamic Feature Module Support
      implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"
    
      // Testing Navigation
      androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"
    }
    

    & 顶级/项目级 gradle

    buildscript {
        repositories {
            google()
        }
        dependencies {
            def nav_version = "2.3.0-alpha01"
            classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
        }
    }
    

    或者像 ${nav_version} 一样放置它

    classpath "androidx.navigation:navigation-safe-args-gradle-plugin:${nav_version}"
    

    或者

    buildScript {
      ext {
        nav_version = "2.3.0-alpha01"
        kotlin_version = "1.3.50"
      }
    
        dependencies {
                classpath 'com.android.tools.build:gradle:3.5.3'
                classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}"
                // NOTE: Do not place your application dependencies here; they belong
                // in the individual module build.gradle files
    
                classpath "androidx.navigation:navigation-safe-args-gradle-plugin:${nav_version}"
        }
    }
    

    参考 https://developer.android.com/guide/navigation/navigation-getting-started

    【讨论】:

    • 谢谢,我对 nav_version 变量的位置感到困惑。我尝试了你提到的最后一个选项,这对我有用。
    • 酷。如果对您有用,您可以接受答案,因为它可以帮助其他人引用相同的内容
    猜你喜欢
    • 2021-12-19
    • 2020-01-02
    • 2020-01-02
    • 2020-04-15
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多