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

How to add SafeArgs to new top level Kotlin gradle

我将使用带片段的导航框架,但在依赖步骤中,当我尝试从文档中添加 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")
}}

提前致谢。

您的顶级(项目级别)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 文件。

  1. 转到 setting.gradle 并在 PluginManagement 块中复制过去的代码:

            plugins{
                id  'dagger.hilt.android.plugin'
                id 'androidx.navigation'
            }
    
            resolutionStrategy {
    
                eachPlugin {
                    if (requested.id.id == 'dagger.hilt.android.plugin') {
                        useModule("com.google.dagger:hilt-android-gradle-plugin:2.40.5")
                    }
                   if (requested.id.id == 'androidx.navigation') {
                      useModule("androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5")
                 }
                }
            }
    
  2. 在build.gradle(项目)级别,转到插件:

// 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 'dagger.hilt.android.plugin'
        id 'androidx.navigation.safeargs.kotlin'
    }
    
  2. 添加依赖项:

    // Hilt dependencies
    def hilt_version='2.40.5'
    implementation "com.google.dagger:hilt-android:$hilt_version"
    kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
    
    
    // Kotlin
     implementation("androidx.navigation:navigation-fragment-ktx:2.4.2")
     implementation("androidx.navigation:navigation-ui-ktx:2.4.2")