java - 无法为 org.gradle.api.internal.artifacts.dsl.dependency.DefaultDependencyHandler 类型的对象设置未知属性 'nav_version'

标签 java android gradle kotlin navigation

我试图添加导航依赖项以在我的项目中使用导航图,并且 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.dependency.DefaultDependencyHandler 类型的对象设置未知属性‘nav_version’”错误。我想知道这是否与 Gradle 版本或我的 Kotlin 版本有关。我尝试清理并重新构建我的项目,但没有成功。想知道有没有人遇到过类似的情况。

最佳答案

它应该是应用程序级别 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

关于java - 无法为 org.gradle.api.internal.artifacts.dsl.dependency.DefaultDependencyHandler 类型的对象设置未知属性 'nav_version',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60250971/

相关文章:

android - Recycler view + View Pager + Nested ScrollView + CoordinatorLayout

Android Gradle 同步错误 : Read timed out

android - Android项目中的第二个Maven存储库

将代码添加到循环中时,Java 循环不循环

Java - 带有 char[] 元素的 HashSet

java - 寻找更新多维数组的有效方法

java - 如何使用spring mvc在浏览器中下载文件?

java - 读取时,android 中保存的位图长度为 3 个字节

android - 位图太大

java - Gradle 和 Spring-bootRun 找不到我的类(class)