我遇到名为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'
}
答案 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=true
是androidx.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"
或当前更新的版本。