添加firebase后,所有com.android.support库必须使用完全相同的版本规范

时间:2018-05-16 05:38:10

标签: android firebase

我的android Studio显示此错误。

  

所有com.android.support库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。发现   版本27.1.1,26.1.0。例子包括   com.android.support:animated-vector-drawable:27.1.1和   com.android.support:support-media-compat:26.1.0 less ...(Ctrl + F1)   有一些库,或工具和库的组合   是不兼容的,或可能导致错误。一个这样的不兼容性是   使用不支持的Android支持库版本进行编译   最新版本(或特别是低于您的版本的版本   targetSdkVersion)。

 Map<String,List<String>> actionVerbMap=new HashMap<>();

3 个答案:

答案 0 :(得分:5)

您可以通过覆盖支持库来解决问题,而不是降级或排除支持库。您可以通过添加错误中的依赖项来覆盖支持库:

implementation "com.android.support:animated-vector-drawable:27.1.1"

有关此答案的论证,您可以在Firebase中看到以下问题:

答案 1 :(得分:3)

com.google.firebase:firebase-core:15.0.0这样的主题取决于较旧的支持库varsion(26.1.0) 已发布15.0.2版本,因此您可以尝试:

  • 使用15.0.2版本的firebase核心。可能它基于最新的支持库
  • 忽略此消息,因为它是一个警告,而不是错误,并且可能您的应用程序可以正常使用它。 (不推荐,但可以工作)
  • 将您使用过的支持库版本降级为26.1.0,因此版本相同。至少在Google发布基于最新支持lib版本的firebase之前。 (推荐的方式,如果#1没有工作)

答案 2 :(得分:1)

当您运行./gradlew :app:dependencies时,您会了解一个已包含在其gradle中的库的传递依赖性。

从该层次结构视图中,可以找出哪些库取决于旧版本,exclude它们在gradle中如下所示:

 exclude group:'com.android.support'//as an example support library is excluded

就这个问题而言,可以这样做:

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
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.google.firebase:firebase-core:15.0.2'){
    exclude group:'com.android.support'
}

此处支持库被排除,因为firebase核心依赖于旧版本,从而产生冲突。

注意:

如果您的依赖项不包含已排除的库但已排除的依赖项需要它,则可以使用兼容版本在gradle中添加排除的库。