原因:androidx.navigation.safeargs只能与androidx项目一起使用

时间:2019-04-19 04:20:50

标签: android kotlin android-architecture-components android-architecture-navigation android-safe-args

我遇到名为safeargs的导航组件的问题。

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

androidx.navigation.safeargs.kotlin中应用插件app/build.gradle时,出现以下错误:

  

原因:androidx.navigation.safeargs仅可与androidx一起使用   项目

app / 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'
}

5 个答案:

答案 0 :(得分:13)

要记住的另一件事是,apply plugin:"androidx.navigation.safeargs.kotlin"不应成为build.gradle上最高的apply

这不起作用:

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'

答案 1 :(得分:4)

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

android.useAndroidX=true
android.enableJetifier=true

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'androidx.navigation.safeargs.kotlin'

答案 4 :(得分:0)

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

android.useAndroidX=true
android.enableJetifier=true

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

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

或当前更新的版本。