如何将 SafeArgs 添加到新的顶级 Kotlin gradle

问题描述 投票:0回答:5

我将使用带有片段的导航框架,但在依赖项步骤中,当我尝试从文档添加 SafeArgs 时,我发现新的顶级 gradle 文件与文档不同,因此我无法添加它。你能解释一下如何将 SafeArgs 添加到新的 kotlin 顶级 gradle 文件吗?

我的顶级 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} 


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

文档顶级 Gradle :

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

提前致谢。

kotlin gradle navigation android-safe-args
5个回答
26
投票

只需在您的顶级 Gradle 插件块中添加以下内容

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

然后,如果您的项目是纯 Kotlin,请在您的应用程序 Gradle 中添加以下内容

plugins {
  id 'androidx.navigation.safeargs.kotlin'
}

else(对于纯 Java 或 Java 混合 Kotlin)添加

plugins {
  id 'androidx.navigation.safeargs'
}

3
投票
  1. 转到setting.gradle并将此代码复制到PluginManagement块中:

            plugins{
                id 'androidx.navigation'
            }
    
            resolutionStrategy {
    
                eachPlugin {
    
                   if (requested.id.id == 'androidx.navigation') {
                      useModule("androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5")
                 }
                }
            }
    
  2. 在 build.gradle(Project) 级别,转到插件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    id 'com.android.application' version '7.1.3' apply false
    id 'com.android.library' version '7.1.3' apply false
    id 'org.jetbrains.kotlin.android' version '1.6.20' apply false
    id 'androidx.navigation' version '2.3.5' apply false
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
  1. 在 build.gradle(:app) 级别,转到插件:

       plugins {
        id 'kotlin-kapt'
        id 'androidx.navigation.safeargs.kotlin'
    }
    
  2. 添加依赖项:

    // Kotlin
     implementation("androidx.navigation:navigation-fragment-ktx:2.4.2")
     implementation("androidx.navigation:navigation-ui-ktx:2.4.2")
    

1
投票

您的顶级(项目级别)Gradle 文件位于 Groovy 中,而文档位于 KotlinScript 中。您需要将文档代码复制并粘贴到顶级 Gradle 文件中,并进行一些更改,如下所示:

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

此外,请考虑将

plugins
定义移动到应用程序级别 Gradle 文件中。


0
投票

(刺猬版)

只需两步

  1. build.gradle.kts(项目

    <appName>
    )中,在插件块中添加此行:

     plugins {
         id("androidx.navigation.safeargs") version "2.5.3" apply false
     }
    

注意:到目前为止的最后一个版本是

2.7.7
,但我使用
2.5.3
,因为它是稳定一个

  1. build.gradle.kts(模块

    :app
    )中,在插件块中添加此行:

     plugins {
         id("androidx.navigation.safeargs.kotlin") // for pure kotlin
         id("androidx.navigation.safeargs") // for java or mixed java and kotlin
     }
    

0
投票

在顶部 build.gradle.kts

alias(libs.plugins.androidx.navigation.safeargs) apply false

libs.versions.toml

    androidx-navigation = "2.7.7"
    [plugins]
    androidx-navigation-safeargs = { id = "androidx.navigation.safeargs.kotlin", version.ref = "androidx-navigation" }

模块应用程序中的build.gradle.kts

alias(libs.plugins.androidx.navigation.safeargs)
© www.soinside.com 2019 - 2024. All rights reserved.