突然gradle无法构建与刚才相同的代码! 我的项目取决于Google Play服务依赖项
它说:
找不到play-services-basement.aar(com.google.android.gms:play-services-basement:15.0.1)。 在以下位置搜索: https://jcenter.bintray.com/com/google/android/gms/play-services-basement/15.0.1/play-services-basement-15.0.1.aar
我认为aar文件是错误地从Google中删除的
有人有什么想法吗?
答案 0 :(得分:98)
在build.gradle中添加google()存储库。并检查google()在jcenter()之前。
答案 1 :(得分:19)
问题似乎出在jcenter上。我已经花了几个小时来解决这个问题,您的问题似乎与我的类似,我认为以下解决方案应该可以解决。
由于某些原因以及jcenter中的许多库,许多库的pom文件都保留在原位,但是相应的aar文件已被删除。 play-services-basement 库也是如此。在此处检查以下内容以作为参考( play-services-basement 的pom文件在jcentre here处可用,而aar文件在jcentre here处不可用):
解决方案: 在您的项目级别gradle文件中,更改以下代码块
allprojects {
repositories {
jcenter()
google()
}
}
到
allprojects {
repositories {
google()
jcenter()
}
}
这为什么起作用?
在我们的第一个代码块中,当gradle尝试解决存储库中的依赖项(在我的情况下,它是jcentre存储库中的google-services-basement),由于相应的aar文件已被删除,因此ddi无法解析。结果,构建失败并显示如下内容:
Could not find play-services-basement.aar (com.google.android.gms:play-services-basement:15.0.1).
在我们的第二个代码块中,已在jcenter存储库之前引用了Google存储库。当gradle构建开始时,它将首先在资源库{...中列出的库中首先查找,用于解析项目中使用的任何库。现在,当gradle尝试解决jcenter中的play-services-basement时,它成功解决了依赖性,因为Google存储库已提供了相应的aar文件(jcenter存储库中未提供最新版本的相同aar文件)在评估jcenter存储库之前引用。检查一下,让我知道是否可行。
答案 2 :(得分:0)
已工作
allprojects {
repositories {
google()
jcenter()
maven {
url 'https://jitpack.io'
}
maven {
url 'https://maven.google.com'
}
}