【问题标题】:Safe Args do not generate classes安全参数不生成类
【发布时间】:2021-12-30 20:20:48
【问题描述】:

我已经阅读了关于此的其他主题,但仍然无法使其正常工作。 我加了,

def nav_version = "2.3.5"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

到项目 Gradle,并且:

id 'androidx.navigation.safeargs'

到应用 Gradle 文件。

我有:

android.useAndroidX=true
android.enableJetifier=true

在 gradle.properties 文件中

我已经完全按照教程进行操作,添加了参数,但我仍然没有得到方向或重建项目后生成的任何其他类。

我错过了什么?

【问题讨论】:

  • this 可能会有所帮助。

标签: android kotlin


【解决方案1】:

也许您正在使用 kotlin(根据您的标签推断),另一种方法是在 Kotlin 中使用 Safe Args 插件:

build.gradle (:project):

buildscript {
    ext.nav_version = "2.3.5"
    
    dependencies {
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
    }
}

build.gradle (:app):

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

验证:

  • Kotlin >= 1.4
  • Android Studio >= 4.2.

【讨论】:

  • 不走运 :( 我用的是 Android Studio 北极狐 不知道有什么区别,我用的是 gradle:7.0.4
【解决方案2】:

好的,找到答案了,感谢@anshul: 问题不是没有生成文件,而是它们。 但是,IDE 找不到它们。由于我使用的是 Kotlin,所以答案与 Java 的答案有些不同。

您必须添加到您的应用级 Gradle

android {
...
    sourceSets {
        main {
            kotlin {
//                srcDirs += 'build/generated/source/navigation-args/'
                srcDirs += 'build/generated/source/navigation-args/debug/com/example/navanddata/ui/'
            }
        }

在我的 IDE 中,如果您使用第一行(已注释掉),您会在 IDE 侧边栏中获得大量文件夹。但是如果你选择第二个,你必须将它更新为你的项目名称并更新它以进行 DBG/REL 编译。

在这两种情况下,您都需要稍微查找文件,因为它们不会出现在您期望的位置,而是(在第二个选项中)名为 Kotlin 的文件夹下的“根级别”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多