Android gradle无法解决:play-services-basement

时间:2018-10-23 11:56:55

标签: android google-play-services gradle-dependencies

突然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中删除的

有人有什么想法吗?

3 个答案:

答案 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'
    }

}