不兼容的Gradle版本-Android

时间:2019-03-11 09:40:50

标签: android gradle android-gradle google-play-services build.gradle

我的gradle文件在构建时没有引发任何错误。但是,当我运行Android Lint时,它失败并显示不兼容的Gradle版本错误。

共享错误:

不兼容的Gradle版本

  

../../ build.gradle:所有com.google.android.gms库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本16.0.2、16.0.1、16.0.0、15.1.0、15.0.1。示例包括com.google.android.gms:play-services-measurement-base:16.0.2和com.google.android.gms:play-services-measurement-api:16.0.1 **

共享在应用级gradle中定义的google依赖项:

compile 'com.android.support:appcompat-v7:27.1.1'
compile 'com.android.support:gridlayout-v7:27.1.1'
compile 'com.android.support:design:27.1.1'
compile 'com.android.support:recyclerview-v7:27.1.1'
compile 'com.android.support:cardview-v7:27.1.1'
compile 'com.android.support:preference-v14:27.1.1'
compile 'com.android.support:support-annotations:27.1.1'
compile 'com.android.support.constraint:constraint-layout:1.1.3'
compile 'com.google.android.gms:play-services-location:15.0.1'
compile 'com.google.android.gms:play-services-maps:15.0.1'
compile 'com.google.android.gms:play-services-analytics:16.0.0'
compile 'com.google.android.gms:play-services-auth:16.0.0'
compile 'com.google.firebase:firebase-core:16.0.3'
compile 'com.google.firebase:firebase-messaging:17.3.0'
compile 'com.google.code.gson:gson:2.8.2'

项目级gradle文件:

    classpath 'com.android.tools.build:gradle:2.3.3'
    classpath 'com.google.gms:google-services:1.5.0'

哪个依赖项导致此lint错误?如何解决Gradle不兼容的问题?

我曾尝试将所有Google gms版本更改为15,但并没有解决问题。

compile 'com.google.android.gms:play-services-location:15.0.1'
compile 'com.google.android.gms:play-services-maps:15.0.1'
compile 'com.google.android.gms:play-services-analytics:15.0.2'
compile 'com.google.android.gms:play-services-auth:15.0.1'

5 个答案:

答案 0 :(得分:0)

错误消息

  

所有com.google.android.gms库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。找到了   版本16.0.2、16.0.1、16.0.0、15.1.0、15.0.1。

很清楚地告诉

这就是您现在拥有的:

compile 'com.google.android.gms:play-services-location:15.0.1'
compile 'com.google.android.gms:play-services-maps:15.0.1'
compile 'com.google.android.gms:play-services-analytics:16.0.0'

它必须是:

compile 'com.google.android.gms:play-services-location:16.0.2'
compile 'com.google.android.gms:play-services-maps:16.0.2'
compile 'com.google.android.gms:play-services-analytics:16.0.2'

此外,请尝试始终使用最新版本的Google API。

希望这会对您有所帮助。

答案 1 :(得分:0)

您需要将gradle构建工具更新为此版本:-

 classpath 'com.android.tools.build:gradle:3.2.1'

和Google Play服务

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

答案 2 :(得分:0)

添加到@Nouman Ch答案中,这些是最新的依赖项

implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
implementation 'com.google.android.gms:play-services-analytics:16.0.6'
implementation 'com.google.android.gms:play-services-auth:16.0.1'

检查herehere以查找最新版本

答案 3 :(得分:0)

转到android studio的项目视图。在.idea>库中,您会找到版本16.0.2、16.0.1、16.0.0、15.1.0和15.0.1的库。

enter image description here

这些库被导入为build.gradle文件中所包含库的依赖项。将这些库的最新版本导入您的依赖项中,以消除该错误。

答案 4 :(得分:0)

发生这种情况是因为您使用的是插件

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

和其他版本的Google服务库。

您应该更新 Google Services Gradle Plugin

dependencies {
    classpath 'com.google.gms:google-services:4.2.0'
    // ...
}

然后更新您的dependencies ,但不必使用相同的版本

从插件3.3.0开始,会有不同的行为:

  

15.0.0之后的Google Play服务库现在具有独立的库   SemVer之后的版本号。此更改将允许更多   各个组件进行频繁,灵活的更新。谷歌   Services Gradle插件已更新至版本3.3.0,以支持   版本变更。

还要检查documentation删除旧模式:

buildscript {
    ext {
        play_version = '15.0.0'
    }
}

dependencies {
    // DON’T DO THIS!!
    // The following use of the above buildscript property is no longer valid.
    implementation "com.google.android.gms:play-services-ads:${play_version}"
    implementation "com.google.android.gms:play-services-auth:${play_version}"
    implementation "com.google.firebase:firebase-firestore:${play_version}"
}

现在,您使用的每个依赖项现在可能处于不同版本。