如何在新版的Android Studio中添加类路径

42

我将我的Android Studio版本更新到了Bumblebee版本。
现在我想要在我的项目中添加导航组件。
我想要把classpath添加到gradle文件中,但是这个gradle文件已经被更改过了,我不知道该如何添加。

我想要在Gradle文件中添加这一行: classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version")

我的项目Gradle文件如下:

    plugins {
    id 'com.android.application' version '7.1.0' apply false
    id 'com.android.library' version '7.1.0' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}

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

我该如何将这个classpath添加到应用的gradle中?!

5个回答

60
在2022年2月的最新版本中,不需要再添加buildscript,只需要在项目的build.gradle中添加id即可。在项目的build.gradle中会像这样:
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.6.10' apply false

    id 'androidx.navigation.safeargs' version '2.4.1' apply false
    // classpath are changed, so no need to add classpath anymore just the id and the version
}

不要忘记在build.gradle模块中再次添加id,

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'androidx.navigation.safeargs'
}

谢谢,但我该如何找到这些 ID?例如 dagger-hilt。 - Dr.KeyOk
1
从那里开始,您将在build.gradle模块中放置id,该id为dagger.hilt.android.plugin,希望它能正常工作。 - Liong
我尝试了,但是Dagger没有起作用。 - GvHarish
7
对于Dagger Hilt,请将id 'com.google.dagger.hilt.android' version '2.41' apply false 添加到项目build.gradle文件中, 并像往常一样在应用程序build.gradle文件中添加id 'kotlin-kapt' id 'dagger.hilt.android.plugin' - feigo808
4
@feigo808,你在哪里找到这个? - Badr At

24

虽然发布文档中没有提到,但是需要手动在插件块的上方添加一个buildscript块,然后在buildscript块内部添加一个依赖项块。

像这样:

他们没有在发布文档中谈论过,但是需要手动在插件块之前添加一个buildscript块,然后在buildscript块内添加一个依赖项块。

就像这样:

buildscript {

        dependencies {

              classpath("androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0")

                     }
       }


plugins {
      id 'com.android.application' version '7.1.0-rc01' apply false
      //......
    }

谢谢,但是显示了这个错误:无法加载类'com.android.build.api.extension.AndroidComponentsExtension。 - Dr.KeyOk
请查看此 SO 解决方案 - Michael Ndiritu

2
他们在build.Gradle文件中提到了这个作为顶层注释,但我认为这是一种不好的做法,因为没有跟随它。
1- 打开你的build.Gradle(应用程序模块),滚动到顶部直到你看到那个注释 // Top-level build file where you can add configuration options common to all sub-projects/modules.
然后复制下面的代码,并将其放在这行内enter image description here 的内置注释中。 // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
dependencies {

    classpath "androidx.navigation:navigation-safe-args-gradle-plugin:lasted-version"

}

}


2

您不需要使用buildscript。您可以在插件组件中添加'id'。我在Hilt集成中遇到了这个问题。这是一个示例

顶层gradle
plugins {
    id 'com.android.application' version '7.2.2' apply false
    id 'com.android.library' version '7.2.2' apply false
    id 'com.google.dagger.hilt.android' version '2.43.2' apply false
}


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

其次是二级(项目级别的Gradle)

plugins {
    id 'com.android.application'
    id 'com.google.dagger.hilt.android'
}....


dependencies {

.....
    implementation 'com.google.dagger:hilt-android:2.43.2'
    annotationProcessor 'com.google.dagger:hilt-compiler:2.43.2'
}

1
我们可以在顶层Build.gradle文件中直接添加类路径,如下所示。
代码 输入图像描述
buildscript {
    repositories {
        google()
    }
    dependencies {
        def nav_version = "2.5.3"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
    }
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    id 'com.android.application' version '7.3.1' apply false
    id 'com.android.library' version '7.3.1' apply false
    id 'org.jetbrains.kotlin.android' version '1.7.20' apply false
}

这是一个示例,演示如何根据文档建议为导航组件添加安全参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接