Java Jetpack导航-添加nav_graph.xml时如何处理依赖项警告?
我想使用android jetpack的新导航库。当我想将导航XML添加到我的项目中时,我遇到了一个错误,错误是: 此操作需要库 导航:导航片段:+, 导航:导航ui:+ 问题:发现现有项目依赖项中存在不一致。 以下版本之间的版本不兼容: -android.arch.persistence.room:runtime:1.1.1和: -支持:appcompat-v7:27.1.1 对于依赖项: -支持:支持注释:26.1.0与: -支持:支持注释:27.1.1 添加这些库后,项目可能无法编译。你愿意吗 是否要添加它们 我点击“取消”,因为我不知道我的小项目会有什么后果。为什么会这样?房间是否与导航库不兼容?我是否冒着在添加这些后我的项目将无法编译的风险?我是否应该保存gradle文件,然后再试一次 如能澄清,我将不胜感激。谢谢:) 我的gradle文件:Java Jetpack导航-添加nav_graph.xml时如何处理依赖项警告?,java,android,android-room,android-architecture-navigation,android-navigation-editor,Java,Android,Android Room,Android Architecture Navigation,Android Navigation Editor,我想使用android jetpack的新导航库。当我想将导航XML添加到我的项目中时,我遇到了一个错误,错误是: 此操作需要库 导航:导航片段:+, 导航:导航ui:+ 问题:发现现有项目依赖项中存在不一致。 以下版本之间的版本不兼容: -android.arch.persistence.room:runtime:1.1.1和: -支持:appcompat-v7:27.1.1 对于依赖项: -支持:支持注释:26.1.0与: -支持:支持注释:27.1.1 添加这些库后,项目可能无法编译。你愿
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "de.test"
minSdkVersion 21
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:recyclerview-v7:27.1.1'
// Room components
implementation "android.arch.persistence.room:runtime:$rootProject.roomVersion"
annotationProcessor "android.arch.persistence.room:compiler:$rootProject.roomVersion"
androidTestImplementation "android.arch.persistence.room:testing:$rootProject.roomVersion"
// Lifecycle components
implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"
annotationProcessor "android.arch.lifecycle:compiler:$rootProject.archLifecycleVersion"
}
这有两个部分: 1) 对话框不正确。当前的Android Studio关注POM文件中包含的测试依赖项,但不会影响您的应用程序(测试依赖项仅在内部用于测试库本身的测试)。这在Android Studio 3.5 Beta 1中已部分修复 2) 添加导航依赖项时,应用程序不会编译,因为您使用的是
compileSdkVersion 27
,而android.arch.Navigation
依赖项取决于支持库的版本28.0.0,这要求您使用API 28编译
如果您将应用程序修复为使用
compileSdkVersion 28
,则可以安全地忽略对话框的警告,并将导航添加到项目中。当然,在添加导航之前,您可以将支持库升级到28.0.0,这将确保从27.1.1升级到28.0.0不会导致其他与导航行为无关的更改。这有两个部分:
1) 对话框不正确。当前的Android Studio关注POM文件中包含的测试依赖项,但不会影响您的应用程序(测试依赖项仅在内部用于测试库本身的测试)。这在Android Studio 3.5 Beta 1中已部分修复
2) 添加导航依赖项时,应用程序不会编译,因为您使用的是compileSdkVersion 27
,而android.arch.Navigation
依赖项取决于支持库的版本28.0.0,这要求您使用API 28编译
如果您将应用程序修复为使用compileSdkVersion 28
,则可以安全地忽略对话框的警告,并将导航添加到项目中。当然,您可以在添加导航之前将支持库升级到28.0.0,这将确保从27.1.1升级到28.0.0不会导致其他与导航行为无关的更改