Android gradle 解析失败:play-services-basement

Android gradle Failed to resolve: play-services-basement

突然 gradle 无法构建刚才工作的相同代码! 我的项目依赖于 google play service dependencies

它说:

找不到播放服务-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 中删除了

有没有人知道,这是怎么回事?

在您的 build.gradle 中添加 google() 存储库。并检查 google() 是否在 jcenter() 之前。

问题似乎出在 jcenter 上。我花了几个小时解决这个问题,你的问题似乎与我的相似,我认为以下解决方案应该有效。

由于某些原因,对于jcenter中的很多库,很多库的pom文件都保留在原地,但相应的aar文件已被删除。 play-services-basement 库也是如此。在此处检查以下内容以供参考(play-services-basement 的 pom 文件可在 jcentre here but aar file is not available at jcentre here 获得):

解决方法: 在您的项目级别 gradle 文件中,更改以下代码块

allprojects {
    repositories {
        jcenter()
        google()
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

为什么这有效?

在我们的第一个代码块中,当 gradle 尝试解析存储库中的依赖项时(在我的例子中,它是 jcentre 存储库中的 google-services-basement),它没有得到已解决,因为相应的 aar 文件已被删除。结果,构建失败,类似:

 Could not find play-services-basement.aar (com.google.android.gms:play-services-basement:15.0.1).

在我们的第二个代码块中,google 存储库在 jcenter 存储库之前被引用。当 gradle 构建开始时,它首先在存储库{...中首先列出的库中查找,以解析项目中使用的任何库。现在,当 gradle 尝试解析 jcenter 中的 play-services-basement 时,它成功解析了依赖关系,因为相应的 aar 文件已被 google 存储库提供(最新版本的相同 aar 文件不是在 jcenter 存储库中可用),它在评估 jcenter 存储库之前已被引用。请检查并告诉我是否可行。

在工作

allprojects {
repositories {
    google()
    jcenter()
    maven {
        url 'https://jitpack.io'
    }
    maven {
        url 'https://maven.google.com'
    }

}