16

我正面临名为safeargs.

classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.0.0'在构建gradle中使用过。

在应用插件androidx.navigation.safeargs.kotlinapp/build.gradle,我收到以下错误:

原因:androidx.navigation.safeargs 只能用于 androidx 项目

应用程序/build.gradle

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'androidx.navigation.safeargs.kotlin'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.test.navigationexample"
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0-alpha04'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha4'
    implementation 'com.google.android.material:material:1.1.0-alpha05'
    implementation 'androidx.navigation:navigation-fragment-ktx:2.0.0'
    implementation 'androidx.navigation:navigation-ui-ktx:2.0.0'
}
4

7 回答 7

31

根据Migrate to AndroidX,您的gradle.properties文件必须包含以下行:

android.useAndroidX=true
android.enableJetifier=true

第一行 ,android.useAndroidX=true用于androidx.navigation.safeargs.kotlin确保您使用的是 AndroidX 项目(Android Studio 中的其他工具也使用它来生成正确的类,例如当您使用任何模板时)。

于 2019-04-19T04:56:04.633 回答
22

要记住的另一件事是,它apply plugin:"androidx.navigation.safeargs.kotlin"不应该是applybuild.gradle 上最重要的。

这不起作用:

apply plugin: 'androidx.navigation.safeargs.kotlin'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

这有效:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'androidx.navigation.safeargs.kotlin'
于 2020-03-15T12:32:01.387 回答
4

放入classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.0"您的 项目build.gradlebuildscript.dependencies部分。

但是放入apply plugin: 'androidx.navigation.safeargs'您的应用程序build.gradle。

于 2020-07-15T20:33:37.377 回答
3

我认为有一个错误。如果您的问题仍然存在,您可以像这样尝试。它也对我有用。

id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'androidx.navigation.safeargs.kotlin'
于 2021-03-23T13:32:54.587 回答
1

如果您在 Gradle 属性文件中添加了以下行,则可以

android.useAndroidX=true
android.enableJetifier=true

请将此行添加到您的项目级 build.gradle

classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5"

或当前更新的版本。

于 2021-08-10T05:40:22.360 回答
0

解决方案

gradle.properties在 app(如果不存在)文件夹中创建文件,并将此示例文件的内容添加到其中。同步您的项目,它对我有用。

示例 gradle.properties 文件

清凉丸:)

于 2022-01-11T06:35:56.853 回答
0

如果您有多个模块,则必须将classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5"intobuild.graddle放在项目的根目录中,而不是放在模块中的那个。然后就可以id "androidx.navigation.safeargs"在模块中使用了。

于 2022-03-03T14:22:54.843 回答