找不到ID为'androidx.navigation.safeargs'的插件。

88

当我尝试按照以下方式为我的应用程序添加安全参数(Android Navigation)时

(使用此指南:https://developer.android.com/topic/libraries/architecture/navigation/navigation-pass-data):

apply plugin: 'com.android.application'
apply plugin: 'androidx.navigation.safeargs'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'

android {...

我收到了这个错误:

找不到 ID 为 'androidx.navigation.safeargs' 的插件。


1
https://dev59.com/A1UL5IYBdhLWcg3wfoDS - ecle
声明依赖项 | SafeArgs - Makc
对于新的Gradle:https://dev59.com/questions/zm8NtIcB2Jgan1znqftH#71805989 - Faizan Haidar Khan
12个回答

135

在Bumblebee下的Android Studio中

要添加androidx.navigation.safeargs插件,请按照以下步骤进行:

  1. classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:2.4.2-alpha09"
    (最新版本) 将上述代码添加到您的项目Gradle文件中的dependency block

  2. 然后将apply plugin: 'androidx.navigation.safeargs'添加到您的应用程序/模块Gradle文件中


在Android Studio中,蜜蜂+

id 'androidx.navigation.safeargs' version '2.4.2' apply false

6
也值得加上这个链接https://developer.android.com/topic/libraries/architecture/adding-components#safe_args,以防以后依赖版本发生变化。 - Frank Leigh
当我将它添加到我的项目 gradle 中时,它可以工作,但是添加到模块 gradle 中就不行。你有什么想法我可能做错了什么吗? - Aditya Kurkure
不起作用。添加、删除 - 输出相同。 - Maksim Golendukhin
我把它们都添加到了项目的Gradle文件中。第二步必须在应用程序的gradle文件中完成。 - Code-Apprentice

67

您可以在 Android Studio Bumblebee 中的项目级 build.gradle 文件中按如下方式使用依赖项

id 'androidx.navigation.safeargs' version '2.4.2' apply false

27

只需在您的build.gradle项目级别中添加此行:

 classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.2.0-rc02"

18
在较新版本的Android Studio 3.2+中,需要在build.gradle文件中添加以下依赖项。 项目级别 build.gradle文件。
dependencies {
    classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5'
}

应用级别 build.gradle

plugins {
    id 'androidx.navigation.safeargs' 
}

3
谢谢您提供的信息。回答清晰,确实很有帮助。 - Thien Ngan
这对我来说完成了工作。Android Studio Electric Eel 2022.1.1 补丁 2。 - M. Jahedbozorgan

13
项目级别的构建gradle中添加此行。
 id 'androidx.navigation.safeargs' version '2.4.2' apply false

将其添加到应用级别的构建 gradle 中。
plugins {
id 'androidx.navigation.safeargs' 
}

12

添加以下代码到你的项目级别的依赖中:

classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-alpha05"

例如:

dependencies {
       classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-alpha05"

}

别忘了添加最新版本


12

看起来是因为你在错误的build.gradle文件中声明了它。你必须将它放置在看起来像这样的build.gradle中:

似乎是因為您將其聲明在錯誤的 build.gradle 文件中。您必須將其放置在看起來像這樣的 build.gradle 中:

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

这个链接解释了如何添加:https://developer.android.com/jetpack/androidx/releases/navigation#safe_args


我没有类似于这样的文件:/ 在我的 Kotlin 项目(从 Java 迁移而来)中没有 "buildscript"。他们应该制作一些工具来生成这些 Gradle 文件。每个项目都不同,因为经过一段时间后所有东西都会改变。 - Kamil
@Kamil 这很奇怪,尝试创建一个新项目并将其与当前项目进行比较。这样你就可以匹配哪个是哪个了。 - Hanako

5

2

我必须将它添加到顶层的build.gradle文件中,不确定你是否只是将其添加到了应用级别的build.gradle文件中。


1

提示:我必须以这种方式添加它,才能使其在Android Studio Dolphin | 2021.3.1中正常工作:

Gradle脚本 > build.gradle(项目:YourProject)

plugins {
id blah
.
.
.
id 'androidx.navigation.safeargs' version '2.4.2' apply false

请参考以下内容:

}

同时在这里:

Gradle脚本 > build.gradle (模块:YourProject.app)

dependencies {
implementation blah
.
.
implementation 'androidx.navigation:navigation-safe-args-gradle-plugin:2.6.0-alpha02'
testImplementation blah
androidTestImplementation blah

}


事实证明,如果您以这种方式将安全参数添加到项目中,则会出现大量重复类错误。因此,实际上,由于安全参数必须在其他某个包中,因此仅像这样添加插件:id 'androidx.navigation.safeargs' version '2.5.2' apply false对我来说有效。我只是删除了实现代码。 - Elk
好的,这个答案只适用于允许同步和构建。然而,当你移动到教程的下一步构建你的第一个Android应用程序并在FirstFragment和SecondFragment之间应用导航时,你会遇到FirstFragmentDirections类找不到的错误。经过多次搜索和尝试不同的修复方法,这个答案在这里最终起作用了。 - Elk

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