错误:修复版本冲突(google-services插件)

70
根据这个SO线程,我知道有版本冲突,但即使从谷歌下载新版本后问题仍然存在。

Error:Execution failed for task ':app:processDebugGoogleServices'. Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 10.0.1.

我的build.gradle(Module: app)

....
dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
    })
   compile 'com.android.support:appcompat-v7:26.+'
   compile 'com.android.support.constraint:constraint-layout:1.0.2'
   testCompile 'junit:junit:4.12'
   compile 'com.google.firebase:firebase-messaging:10.0.1'
   compile 'com.google.android.gms:play-services-maps:11.0.4'
   compile 'com.google.android.gms:play-services-location:11.0.4'
}

apply plugin: 'com.google.gms.google-services'


现在需要做出哪些改变?


确保所有的Play服务版本都是相同的。 - sushma1008
14个回答

57
我认为你改变了。
compile 'com.google.firebase:firebase-messaging:11.0.4'

1
所以,只有这个问题!我希望在发布之前尝试过它。:\ - Faizan Mubasher
4
请确保所有Firebase SDK版本与Play服务版本相同。 - Infinite Loops
1
我遇到了同样的问题,但是我的所有版本号都已经更新了。几分钟后,我发现它之所以出错是因为我把apply plugin: 'com.google.gms.google-services'放在了底部。当我把它放在底部时,它就可以工作了。有人能解释一下为什么会这样吗? - Farwa
如何在PhoneGap Build上进行此分辨率的设置。 - sqlchild
如何在Ionic/Cordova构建中修复这个问题? - Various Artist
最好从这个链接检查Maven仓库的版本并更改版本。 - Wimukthi Rajapaksha

40

当时发生相同的错误

apply plugin: 'com.google.gms.google-services'

未添加到build.gradle文件的底部。


3
这对我很有帮助,我只是把它添加到文件底部。 - Desolator
2
救了我!不过人们不禁要想,为什么Gradle闻起来那么像黑魔法呢。 - Guy Moreillon
我想知道为什么将插件行设置在Gradle文件的顶部会导致错误,而将其设置在文件底部则可以正常工作???有人知道实际原因吗? - ahmed hamdy

30

您必须在所有三个库中只使用一个版本

compile 'com.google.firebase:firebase-messaging:11.0.4'
compile 'com.google.android.gms:play-services-maps:11.0.4'
compile 'com.google.android.gms:play-services-location:11.0.4'

仅使用10.0.1版本的三个库


太棒了。花了几个小时来解决构建问题,因为Firebase尝试使用17x而play-services-location是16x。 - Brad Martin
更新,可以使用单独的版本。https://dev59.com/qFcO5IYBdhLWcg3woC9T#54593656 - Khemraj Sharma

21
请更改您的项目级别build.gradle文件,在其中更改google-services的依赖类路径或build.gradle路径。
buildscript {

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:4.0.1'
    }
}

19

Google Play服务要求其所有依赖项具有相同的版本。 但是如果您查看您的依赖项:

compile 'com.google.firebase:firebase-messaging:10.0.1'
compile 'com.google.android.gms:play-services-maps:11.0.4'
compile 'com.google.android.gms:play-services-location:11.0.4'

有一个版本不同的问题。

可以通过将版本更改为(在本例中)11.0.4来解决问题。

这适用于Firebase和Google Play服务 - 两者必须具有相匹配的版本,而且彼此对应。如果Firebase依赖项是10.0.1,而Google Play服务依赖项是11.0.4,则会发生相同的错误。

请注意,在某些情况下,可能存在一个库具有另一个库的不同版本(例如,库x使用play-services-games:10.0.1,而您在应用程序依赖项中使用11.0.4


编辑

此答案不涵盖版本较新的情况,其中版本是单独的。更新com.google.gms:google-services:4.1.0并检查 mvnrepository (或其他一些maven / gradle工件搜索工具)以查找最新版本。


更新,最新的依赖项可能有单独的版本。https://dev59.com/qFcO5IYBdhLWcg3woC9T#54593656 - Khemraj Sharma

6

带有

com.android.tools.build:gradle:3.2.0

您需要使用:


来实现。
classpath 'com.google.gms:google-services:4.1.0'

这解决了我的问题。

5
为了使 Firebase 正确安装,所有 Firebase 编译版本必须相同。
compile 'com.google.firebase:firebase-messaging:11.0.4' 
compile 'com.google.android.gms:play-services-maps:11.0.4' 
compile 'com.google.android.gms:play-services-location:11.0.4'

这是正确的做法。

在IT技术方面。

2

最初,Firebase数据库指向11.8.0。将所有相关的jar文件更改为11.0.4后,此问题在更改SDK级别时得到解决。

compile 'com.google.firebase:firebase-database:11.0.4'
compile 'com.google.firebase:firebase-messaging:11.0.4'

1

更新 Google 服务和 Firebase 库到最新版本

Google 服务

 classpath 'com.google.gms:google-services:4.3.1'

Firebase
 implementation 'com.google.firebase:firebase-database:19.0.0'

1

重要更新

与过去不同,Firebase和Play-service依赖关系现在具有独立的版本。如果您遇到版本冲突,则可以更新您的com.google.gms:google-services并开始定义独立版本。

步骤(1):更新com.google.gms:google-services

打开项目级别的build.gradle,将com.google.gms:google-services更新为版本4.1.0如果有更新,请务必检查

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
        classpath 'com.google.gms:google-services:4.1.0' //< update this 
    }
}

步骤(2):更新Firebase依赖项 最新版本

Firebase依赖项的版本可以是单独的。

com.google.firebase:firebase-core:16.0.3    //Analytics, check latest too
com.google.firebase:firebase-database:16.0.2    //Realtime Database, check latest too

步骤(3):更新Play Services依赖项 最新版本

Play Services版本也可以有单独的版本。

com.google.android.gms:play-services-ads:17.1.2 //Ads, check latest too
com.google.android.gms:play-services-analytics:16.0.6   //Analytics, check latest too

仍有问题? 您可以通过阅读this answer来检查哪个依赖项造成了冲突。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接