如何将 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 文件。
转到 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")
}
}
}
在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
}
在 build.gradle(:app) 级别,转到插件:
plugins {
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'
id 'androidx.navigation.safeargs.kotlin'
}
添加依赖项:
// 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")
我将使用带片段的导航框架,但在依赖步骤中,当我尝试从文档中添加 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 文件。
转到 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") } } }
在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
}
在 build.gradle(:app) 级别,转到插件:
plugins { id 'kotlin-kapt' id 'dagger.hilt.android.plugin' id 'androidx.navigation.safeargs.kotlin' }
添加依赖项:
// 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")