我的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'
答案 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'
答案 3 :(得分:0)
转到android studio的项目视图。在.idea>库中,您会找到版本16.0.2、16.0.1、16.0.0、15.1.0和15.0.1的库。
这些库被导入为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}"
}
现在,您使用的每个依赖项现在可能处于不同版本。