所有com.android.support库都必须使用完全相同的版本'com.android.support:appcompat-v7:28.0.0-rc01'

时间:2019-05-01 23:50:23

标签: android gradle android-gradle

好的,大家好。我是新来的(这是我的第一篇文章,因此,如果我做错了任何事情,请原谅我,让我知道!)。您能帮我解决这个问题吗?我真的被卡住了。检查以下屏幕截图上的红色带下划线的行(依赖项)。

Android错误:

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本28.0.0-rc01,26.1.0。示例包括com.android.support:animated-vector-drawable:28.0.0-rc01和com.android.support:support-media-compat:26.1.0 less ...(Ctrl + F1) 检查信息:库,工具和库的某些组合不兼容或可能导致错误。一种不兼容的情况是使用不是最新版本(或特别是低于targetSdkVersion的版本)的Android支持库版本进行编译。

截屏: https://imgur.com/a/4C2Sxg3

我尝试了以下方法:

All com.android.support libraries must use the exact same version specification

All com.android.support libraries must use the exact same version specification (mixing version can lead to runtime crashes)

build.gradle:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.firebase:firebase-auth:16.0.3'
implementation 'com.google.firebase:firebase-core:16.0.3'
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso core:3.0.2' }

1 个答案:

答案 0 :(得分:0)

嘿,欢迎并祝贺您!

您正在使用某些依赖项,这些依赖项也可能具有transitive dependencies。这意味着您正在针对某些API编译代码,而您的依赖项已针对某些API进行了编译(可能略有不同或更多)。所以gradle困惑于采用哪个版本的依赖-您的依赖还是第三方的传递。如果这是自动的,那么当您或您的依赖项尝试调用该共享依赖项的一个版本中已更改或不存在的方法或类时,它可能会导致运行时崩溃。

您可以使用gradle来解决依赖项的问题:

./gradlew dependencies

甚至更好:

./gradlew dependencies | grep <name of the conflicting dependency> -B 20 -A 20

Android世界中解决该问题的常用方法是强制使用此依赖关系的特定版本(通常是最新版本):

  configurations.all {
    resolutionStrategy {
      force <exact dependency version>
    }
  }

另外两个: