找不到play-services-basement.aar


150

昨天我尝试构建我的应用程序,并且一切正常。

今天,对项目没有任何更改...突然间,我收到以下警告消息,告诉我:

Error:Could not find play-services-basement.aar (com.google.android.gms:play-services-basement:11.0.1). 
Searched in the following locations:
    https://jcenter.bintray.com/com/google/android/gms/play-services-basement/11.0.1/play-services-basement-11.0.1.aar

是否有人遇到同样的问题?

如果您在链接中搜索软件包,则基本上可以通过浏览器立即下载该链接。我想服务器端发生了什么变化?也许命名约定?

看起来它正在寻找:play-services-basement.aar,而是获取play-services-basement-11.0.1.aar吗?这可能是命名约定还是gradle问题?


Answers:


358

jcenter()具有某些库的镜像(我想它们是在故意做的),这些镜像最初应通过google()或maven()存储库提供。当gradle build正常运行时,对于项目中使用的任何库,首先要查找的是repositories {..jcenter()镜像没有发行版(例如com.google.android.gms:play)中首先列出的存储库。-services-ads:15.0.1(对于我的情况)是您的gradle所寻找的,构建失败并出现此类错误。

因此,jcenter()应该在以下各repositories {..部分的最后位置列出。

   buildscript {
    ext.kotlin_version = '1.2.50'
    repositories {
        google()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        jcenter()
    }...

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

4
在更新为“ com.google.gms:google-services:4.0.1”后,这解决了我的“找不到... aar”文件的问题。每次尝试更新此版本或Play服务版本时,我似乎都会遇到这种晦涩而令人沮丧的问题。感谢您结束3小时的搜寻以解决此问题!
凯尔(Kyle)'18年

11
说jcenter要在摇篮文件中排在最后,这是我的生命:)
salih

3
这个问题突然发生在我身上,非常感谢您提供的解决方案帮助,只是将jcenter()的顺序更改为最后一个。
abadooz

1
刚遇到这个问题。
哈德斯

2
谢谢。项目运行正常,突然我遇到了同样的问题。将jcenter()放在最后一个可以解决此问题。
懒惰的忍者

14

这太疯狂了!!!我遇到了同样的问题。构建工作正常,然后突然开始因相同的问题而失败。我尝试了上述建议,但对我没有用。最后,这对我有用:

更新到最新的firebase依赖项:

implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.firebase:firebase-ads:17.0.0'

此外,广告服务:

实施'com.google.android.gms:play-services-ads:17.0.0'

注意:对于play-services-ads:17.0.0,必须在清单文件中添加以下内容,否则应用程序在打开时崩溃。

<application>
    <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="[ADMOB_APP_ID]"/>
</application>

这对我有用。我重点介绍了所有gradle依赖关系,这些问题给我带来了麻烦,并且有可用的更新版本。将它们更改为最新版本,并且可以正常工作。
克里斯·戴克

我必须更新所有firebase依赖项才能使其成功构建。
杰森

1
这似乎是“当前”正确答案。在许多情况下,重新排列事物的公认答案似乎并不重要。
乔什

6

更新#2 2018/05/29

这个问题看起来现在已经解决了,我仍然在使用相同的gradle配置。但是我前一段时间做了这些步骤,我不确定这些步骤是否起作用,或者这是否是服务器端问题,并且最近已修复/更新。我只是注意到在执行以下步骤后问题不再存在:

  1. 在项目级别的gradle.build buildscript > repositories和中添加以下内容allprojects > repositories

    • google()
    • maven { url 'http://jcenter.bintray.com' }
  2. 将google-services类路径更改为
    classpath com.google.gms:google-services:4.0.1'

  3. 与Gradle文件同步项目



更新#1 2018/05/29

我通过在应用程序级 gradle中将Firebase 依赖项降级为〜12.0.0来解决该错误。但这将严重影响应用程序,仍在寻找更可行的解决方法。



    apply plugin: 'com.android.application'
    apply plugin: 'io.fabric'
    ...
    compile 'com.google.firebase:firebase-core:12.0.0'
    compile 'com.google.firebase:firebase-database:12.0.0'
    compile 'com.google.firebase:firebase-storage:12.0.0'
    compile 'com.google.firebase:firebase-auth:12.0.0'
    compile 'com.google.firebase:firebase-crash:12.0.0'
    ...




同样在这里,我遇到了@SimbaClaws描述的相同问题。一切进展顺利,直到昨天我遇到同样的问题。

我在项目级别的 build.gradle中有以下代码,



    // Top-level build file where you can add configuration options common to all sub-projects/modules.

    buildscript {
        repositories {
            jcenter()
            maven {
                url 'https://maven.fabric.io/public'
            }
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.3'

            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
            //classpath 'com.google.gms:google-services:3.0.0'
            classpath 'com.google.gms:google-services:3.2.1'
            classpath 'io.fabric.tools:gradle:1.25.1'
        }
    }

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

    task clean(type: Delete) {
        delete rootProject.buildDir
    }


以及以下用于应用程序级 build.gradle的代码



    apply plugin: 'com.android.application'
    apply plugin: 'io.fabric'

    android {
        compileSdkVersion 26
        buildToolsVersion "26.0.1"
        defaultConfig {
            applicationId "my.secret.application"
            minSdkVersion 16 // 19
            targetSdkVersion 26
            versionCode 1
            versionName "5.0.204"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })

        compile 'com.google.firebase:firebase-core:15.0.2'
        compile 'com.google.firebase:firebase-database:15.0.0'
        compile 'com.google.firebase:firebase-storage:15.0.2'
        compile 'com.google.firebase:firebase-auth:15.1.0'
        compile 'com.google.firebase:firebase-crash:15.0.2'
        compile 'com.android.support:appcompat-v7:26.+'
        compile 'com.android.support:design:26.+'
        compile 'com.android.support:recyclerview-v7:26.+'
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
        compile 'de.hdodenhof:circleimageview:2.2.0'
        compile 'com.android.support:palette-v7:26.+'
        compile 'com.android.support:support-v4:26.+'
        compile 'com.android.support:cardview-v7:26.+'
        compile 'com.github.bumptech.glide:glide:3.7.0'
        compile 'org.greenrobot:eventbus:3.1.1'
        testCompile 'junit:junit:4.12'
        compile 'com.crashlytics.sdk.android:crashlytics:2.9.1'
    }


    apply plugin: 'com.google.gms.google-services'


谁能告诉我我错过了什么吗?我还在寻找可能的解决方法和答案。TIA!


2

有同样的问题,对我来说,这里提到的答案都没有用。因此,我只是更新了gradle文件中的依赖项,无论哪个依赖项具有com.google.gms :(将它们保留在相同的版本示例16.0.0中)


1

我也遇到了这个问题。我发现的根本原因是构建Gradle版本不一致。在Gradle Scripts信息库中,“如果我可以称其为”,则有两个build gradle模块。build.gradle(项目:应用程序的名称)和build.gradle(模块:应用程序)。确保依赖项中的类路径'com.android.tools.build:gradle:3.2.1'正在使用该工具的最新版本。不一致会导致构建问题。


0

就我而言,刚才添加www的网址就像是url "https://jitpack.io/"www为我开始添加之后。在其他存储库中,也尝试添加显式URL。

maven {
            url "https://www.jitpack.io/"
        }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.