我遇到了名为safeargs
的导航组件问题。
我在构建gradle时使用了classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.0.0'
。
在app/build.gradle
中应用插件androidx.navigation.safeargs.kotlin
时,我遇到以下错误:
原因:androidx. navigation. safeargs只能用于androidx项目
- 应用程序/构建版本. 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'
}
8条答案
按热度按时间9lowa7mx1#
根据Migrate to AndroidX,
gradle.properties
文件必须包含以下行:第一行
android.useAndroidX=true
是androidx.navigation.safeargs.kotlin
用来确保您使用的是AndroidX项目(Android Studio中的其他工具也使用它来生成正确的类,例如在您使用任何模板时)。slmsl1lt2#
还有一件事要记住,
apply plugin:"androidx.navigation.safeargs.kotlin"
不应该是build.gradle上最顶层的apply
。这是行不通的:
这是可行的:
ulmd4ohb3#
将
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.0"
放到buildscript.dependencies
部分的项目build.gradle中。但是把
apply plugin: 'androidx.navigation.safeargs'
放到你的appbuild.gradle中。tmb3ates4#
唯一对我有效的是。
在项目的build.gradle文件顶部:
在同一文件的plugins下添加:
在模块的build.gradle文件中,在插件下添加:
puruo6ea5#
我认为有一个bug。如果你的问题继续存在,你可以这样尝试。它对我也起作用了。
5cg8jx4n6#
如果您已在Gradle属性文件中添加了以下行,则可以
请将此行添加到您的项目级构建。gradle
或当前更新版本。
zwghvu4y7#
在应用程序文件夹中创建
gradle.properties
文件(如果还不存在),并将此示例文件的内容添加到其中。同步您的项目,它为我工作。Example gradle.properties File
清凉丸:)
bihw5rsg8#
如果有多个模块,需要将
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5"
放到project根目录下的build.graddle
中,而不是放在模块中的build.graddle
中,这样就可以在模块中使用id "androidx.navigation.safeargs"
了。