添加google-services:3.3.1依赖后出现类路径查找失败问题求助
问题:添加google-services插件后出现依赖找不到错误
我在build.gradle中添加classpath 'com.google.gms:google-services:3.3.1'后,遇到了如下错误:
Error:Could not find com.google.gms:google-services:3.3.1. Searched in the following locations: file:/C:/Program Files/Android/Android Studio/gradle/m2repository/com/google/gms/google-services/3.3.1/google-services-3.3.1.pom file:/C:/Program Files/Android/Android Studio/gradle/m2repository/com/google/gms/google-services/3.3.1/google-services-3.3.1.jar https://repo1.maven.org/maven2/com/google/gms/google-services/3.3.1/google-services-3.3.1.pom https://repo1.maven.org/maven2/com/google/gms/google-services/3.3.1/google-services-3.3.1.jar https://dl.google.com/dl/android/maven2/com/google/gms/google-services/3.3.1/google-services-3.3.1.pom https://dl.google.com/dl/android/maven2/com/google/gms/google-services/3.3.1/google-services-3.3.1.jar Required by: project :
我的项目根build.gradle内容如下:
buildscript { repositories { mavenCentral() google() } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.google.gms:google-services:3.3.1' // google-services plugin } } def isReleaseBuild() { return version.contains("SNAPSHOT") == false } allprojects { version = VERSION_NAME group = GROUP repositories { mavenCentral() google() } } allprojects { repositories { maven { url "https://jitpack.io" } maven { url "https://maven.google.com" // Google's Maven repository } } } apply plugin: 'android-reporting'
解决办法
这个问题主要是插件版本兼容性和仓库配置顺序/有效性导致的,咱们一步步修复:
1. 调整google-services插件版本,匹配你的Gradle插件版本
你当前使用的Android Gradle插件版本是3.0.1,而google-services:3.3.1和这个版本并不兼容——早期的google-services插件和Gradle插件有严格的版本对应关系。
建议把google-services插件版本改成3.2.1(这是和Gradle插件3.0.1匹配的稳定版本),修改后的dependencies部分:
classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.google.gms:google-services:3.2.1'
2. 优化buildscript的仓库配置顺序
仓库的搜索顺序很重要,建议把google()仓库放在mavenCentral()前面,这样Gradle会优先从谷歌官方仓库拉取依赖(毕竟google-services插件是谷歌的,官方仓库肯定有)。修改后的buildscript块:
buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.google.gms:google-services:3.2.1' } }
3. 合并冗余的allprojects仓库配置
你现在写了两个allprojects块,会导致配置冗余,建议合并成一个,同时https://maven.google.com和google()是等价的(Gradle 3.0+支持google()快捷方式),可以简化:
allprojects { version = VERSION_NAME group = GROUP repositories { google() mavenCentral() maven { url "https://jitpack.io" } } }
做完这些修改后,点击Android Studio的Sync Project with Gradle Files按钮重新同步,应该就能解决依赖找不到的问题了。
内容的提问来源于stack exchange,提问作者akkk
相关产品推荐
相关产品推荐

