我将使用带有片段的导航框架,但在依赖项步骤中,当我尝试从文档添加 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 插件块中添加以下内容
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'
}
转到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")
}
}
}
在 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
}
在 build.gradle(:app) 级别,转到插件:
plugins {
id 'kotlin-kapt'
id 'androidx.navigation.safeargs.kotlin'
}
添加依赖项:
// Kotlin
implementation("androidx.navigation:navigation-fragment-ktx:2.4.2")
implementation("androidx.navigation:navigation-ui-ktx:2.4.2")
您的顶级(项目级别)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 文件中。
只需两步
在build.gradle.kts(项目
<appName>
)中,在插件块中添加此行:
plugins {
id("androidx.navigation.safeargs") version "2.5.3" apply false
}
注意:到目前为止的最后一个版本是
2.7.7
,但我使用2.5.3
,因为它是稳定一个
在 build.gradle.kts(模块
:app
)中,在插件块中添加此行:
plugins {
id("androidx.navigation.safeargs.kotlin") // for pure kotlin
id("androidx.navigation.safeargs") // for java or mixed java and kotlin
}
在顶部 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)