找不到 play-services-basement.aar

Posted

技术标签:

【中文标题】找不到 play-services-basement.aar【英文标题】:Could not find play-services-basement.aar 【发布时间】:2018-11-06 20:56:24 【问题描述】:

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

今天,没有对项目进行任何更改...突然间,我收到了一条警告消息,告诉我:

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 问题?

【问题讨论】:

Ionic3 Build-Error: Could not find play-services-auth-base.aar (15.0.1)的可能重复 【参考方案1】:

在我的情况下,刚刚添加 www 之前的 url 就像 url "https://jitpack.io/" 之后添加的 www 开始为我工作。在其他存储库中也尝试添加显式 URL。

maven 
            url "https://www.jitpack.io/"
        

【讨论】:

【参考方案2】:

我也遇到过这个问题。我发现根本原因是构建 Gradle 版本不一致。 在 Gradle Scripts 存储库“如果我可以这样称呼它”中,有两个构建 gradle 模块。 build.gradle(项目:应用名称)和 build.gradle(模块:app)。确保依赖项中的类路径 'com.android.tools.build:gradle:3.2.1' 使用的是最新且相同版本的工具。不一致会导致构建出现问题。

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

更新到最新的 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,必须在 Manifest 文件中添加以下内容,否则应用程序在打开时崩溃。

<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 依赖项才能成功构建。 这似乎是“当前”的正确答案。在许多情况下,接受重新排序的答案似乎并不重要。【参考方案5】:

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()
    
  

【讨论】:

这解决了我更新到“com.google.gms:google-services:4.0.1”后“找不到...aar”文件的问题。每次我尝试更新此版本或 Play 服务版本时,我似乎都会遇到这种晦涩难懂且令人沮丧的问题。感谢您结束 3 小时的搜寻来解决此问题! 说 jcenter 在 cradle 文件中排名最后是拯救我的生命 :) 这个问题突然发生在我身上,非常感谢您的解决方案帮助,只是将 jcenter() 更改为最后一个。 刚刚遇到这个问题。 谢谢。项目工作正常,突然我遇到了同样的问题。将 jcenter() 放在最后一个解决了这个问题。【参考方案6】:

更新 #2 2018/05/29 这个问题现在看起来 fixed 消失了,我仍在使用相同的 gradle 配置。但是我不久前做了这些步骤,我不确定这些步骤是否有任何作用,或者这是否是服务器端问题并且它最近得到了修复/更新。我只是注意到在执行以下步骤后问题消失了:

    在项目级 gradle.build 的 buildscript &gt; repositoriesallprojects &gt; repositories 中添加以下内容。

    google() maven url 'http://jcenter.bintray.com'

    将 google-services 类路径更改为classpath com.google.gms:google-services:4.0.1'

    使用 Gradle 文件同步项目


更新 #1 2018/05/29 我通过在 app-level 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'

如果我错过了什么,谁能告诉我?我还在四处寻找可能的解决方法和答案。蒂亚!

【讨论】:

以上是关于找不到 play-services-basement.aar的主要内容,如果未能解决你的问题,请参考以下文章

java 枚举 找不到符号

bat系统找不到指定文件怎么办?

java package找不到符号

SpringBoot报找不到 dao 问题

ubuntu20.04找不到start命令

找不到名为“my”的模块。找不到名为“mycontroller”的控制器