不兼容的Gradle版本-Google Play服务

时间:2019-03-29 10:54:54

标签: android gradle google-play-services

自从我将Google Play服务库升级到版本16.0.0以来,我的Linter引发以下错误:

  

不兼容的Gradle版本

     

../../ build.gradle:全部   com.google.android.gms库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。找到了   版本16.0.1、16.0.0。例子包括   com.google.android.gms:play-services-base:16.0.1和   com.google.android.gms:play-services-location:16.0.0

我显示了所有依赖项并看到了:

  

com.google.android.gms:play-services-location:16.0.0

     

| | +-   com.google.android.gms:play-services-base:16.0.1

显然,google play-services-location 16.0.0具有对play-services-base 16.0.1的内部依赖关系,这会因版本不匹配而导致错误。

在我的项目gradle文件中,我已经将google依赖项更新为:

subset(data, as.Date(Time) == as.Date("2012-06-28"))

我必须随位置版本16.0.0一起发布该应用程序,如何解决此问题?

编辑: 我的build.gradle中的依赖项:

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

2 个答案:

答案 0 :(得分:2)

您可以尝试从定位服务gradle导入中排除16.0.1,例如:

implementation 'com.google.android.gms:play-services-base:16.0.0'
implementation ('com.google.android.gms:play-services-location:16.0.0') {
    exclude group:'com.google.android.gms', module: 'play-services-base'
}

答案 1 :(得分:0)

configurations.all {
   resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.google.gms') {
            if (requested.name.contains("play-services-location")) {
                details.useVersion "16.0.0"
            }
            if (requested.name.contains("play-services-base")) {
                details.useVersion "16.0.0"
            }
        } 

    }
}

尝试这个