Android build.gradle(Module:app)与firebase和play-services依赖项冲突

时间:2017-03-24 14:23:30

标签: android firebase

我使用以下依赖项:

compile 'com.android.support:appcompat-v7:25.3.0'
compile 'com.android.support:support-v4:25.3.0'
compile 'com.android.support:recyclerview-v7:25.3.0'
compile 'com.android.support:design:25.3.0'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.google.firebase:firebase-crash:10.0.1'
compile 'com.firebaseui:firebase-ui-database:1.1.1'
compile 'com.firebaseui:firebase-ui-auth:1.1.1'
compile 'com.google.android.gms:play-services:10.0.1'

在Gradle文件中显示错误:

  

所有com.android.support库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。发现   版本25.3.0,25.1.0,24.0.0 ......

我无法更新

com.google.android.gms:play-services:10.0.1

因为我收到以下错误:

  

请通过更新版本来修复版本冲突   google-services插件(有关最新版本的信息是   可在   https://bintray.com/android/android-tools/com.google.gms.google-services/)   或将com.google.android.gms的版本更新为10.0.1。

当我删除Firebase依赖项时,错误消失了。是什么导致了这个错误,我怎么能摆脱它?

2 个答案:

答案 0 :(得分:1)

com.firebaseui:firebase-ui-auth:10.0.1库具有传递依赖性:

com.android.support:cardview-v7:25.1.0
com.android.support:customtabs:25.1.0

您可以通过将其明确地包含在依赖项中来强制使用较新版本:

compile "com.android.support:cardview-v7:25.3.0"
compile "com.android.support:customtabs:25.3.0"

警告消息24.0.0中列出的其他版本必须来自Play服务库。在Android Studio中,您可以打开Gradle窗口,然后双击:app>任务> android> androidDependencies 获取依赖报告以查找冲突的库。

我还强烈建议更换:

compile 'com.google.android.gms:play-services:10.0.1'

使用您需要的特定API。列出here in Table 1。包括单个play-services库会引入所有API,不必要地增加APK的大小并且经常需要Multidex。

有关此问题的进一步讨论,请参阅此related question

答案 1 :(得分:0)

您是将def appName = project.APPLICATION_NAME def versionMajor = Integer.parseInt(project.APPLICATION_VERSION_MAJOR) def versionMinor = Integer.parseInt(project.APPLICATION_VERSION_MINOR) def versionPatch = Integer.parseInt(project.APPLICATION_VERSION_PATCH) def versionCode = Integer.parseInt(project.APPLICATION_VERSION_CODE) android { .... applicationVariants.all { variant -> variant.outputs.each { output -> def separator = "_" def buildType = variant.variantData.variantConfiguration.buildType.name def newApkName = appName + separator + versionMajor + separator + versionMinor + separator + versionPatch + separator + versionCode + ".apk" output.outputFile = new File(output.outputFile.parent, newApkName) } } } 添加到依赖项,将classpath 'com.google.gms:google-services:version·添加到build.gradle吗? 并按apply plugin: 'com.google.gms.google-services'

更改compile 'com.android.support:support-v4:25.3.0'