Gradle 构建工具找不到 play-services-tasks.aar?为啥?

Posted

技术标签:

【中文标题】Gradle 构建工具找不到 play-services-tasks.aar?为啥?【英文标题】:Gradle build tool cannot find play-services-tasks.aar? Why?Gradle 构建工具找不到 play-services-tasks.aar?为什么? 【发布时间】:2018-11-06 19:14:49 【问题描述】:

今天突然,我在 android Studio 中运行我的应用时遇到了错误。

它是:

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

我没有更改 gradle 文件中的任何内容,但它突然出现了。我之前的构建在几分钟前成功执行。

为什么它找不到play-services-tasks.aar 这是 com.google.android.gms:play-services-tasks:15.0.1

的一部分

采取的步骤:

我检查了我是否在 gradle 文件中包含了所有存储库,并且到目前为止所有存储库都是正确的。

为什么会突然出现这个错误?

我也将此链接https://jcenter.bintray.com/com/google/android/gms/play-services-tasks/15.0.1/play-services-tasks-15.0.1.aar 复制到浏览器中,但它工作正常,即出现“文件下载”对话框。


我的 Gradle 文件

应用层

apply plugin: 'com.android.application'

android 
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig 
        applicationId "mekanic24assistantapplication.heba.mekanic24.com.mekanic24assistantapplication"
        minSdkVersion 14
        targetSdkVersion 26
        versionCode 13
        versionName "2.1"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    
    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    


    dexOptions 
        incremental true
        javaMaxHeapSize "4g"
    

//    err Android Gradle Duplicate files copied in APK META-INF/license.txt

    configurations.all 

        resolutionStrategy 
            force 'com.android.support:support-v4:26+'
            force 'com.android.support:support-annotations:26+'


        

    


    packagingOptions 
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    



dependencies 
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
        exclude group: 'com.android.support', module: 'support-annotations'
    )
    //   compile 'com.android.support:appcompat-v7:26.3.1'
    compile 'com.android.support:appcompat-v7:26+'
    compile 'com.android.support:design:26+'
    compile 'com.android.support:recyclerview-v7:26+'
    compile 'com.android.support:cardview-v7:26+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    androidTestCompile 'com.android.support:support-annotations:26+'
    testCompile 'junit:junit:4.12'
    //   compile 'com.android.support:appcompat-v7:26.3.1'
    compile 'com.github.markushi:circlebutton:1.1'
    //  compile 'com.android.support:design:26.3.1'
    compile 'com.android.volley:volley:1.0.0'
    compile 'com.google.android.gms:play-services-base:15.0.1'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.firebase:firebase-client-android:2.5.2'
    compile 'com.google.firebase:firebase-core:15.0.2'
    compile 'com.google.firebase:firebase-messaging:15.0.2'
    compile 'com.google.firebase:firebase-database:15.0.0'
    compile 'com.wang.avi:library:2.1.3'
    compile 'de.hdodenhof:circleimageview:2.2.0'
    compile 'android.lib.recaptcha:reCAPTCHA:2.0.0'
    compile 'com.google.android.gms:play-services-safetynet:15.0.1'
    compile 'com.google.android.gms:play-services-maps:15.0.1'
    compile 'com.google.android.gms:play-services-places:15.0.1'
    compile 'com.google.android.gms:play-services-location:15.0.1'

    compile 'com.squareup.picasso:picasso:2.5.2'
    testCompile 'junit:junit:4.12'
    compile 'com.anjlab.android.iab.v3:library:1.0.38'
    compile files('libs/mail.jar')
    compile files('libs/additionnal.jar')
    compile files('libs/activation.jar')
    compile 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    compile 'com.yarolegovich:lovely-dialog:1.1.0'
    compile 'com.mobsandgeeks:android-saripaar:2.0.3'
    compile 'com.github.stfalcon:smsverifycatcher:0.3.1'
    compile 'ch.acra:acra:4.9.0'
    //TODO:  Apache 2.0 license https://github.com/ACRA/acra
    compile 'com.google.android.gms:play-services-ads:15.0.1'
    compile 'com.github.luongvo:GmailBackground:2.0.2'


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

项目级别

buildscript 
repositories 
    jcenter()
    maven  url 'https://maven.google.com' 
    maven 
        url "https://dl.bintray.com/android/android-tools"
    

    maven  url "https://jitpack.io" 
    google()


dependencies 
    classpath 'com.android.tools.build:gradle:2.3.2'

    classpath 'com.google.gms:google-services:3.2.0'



allprojects 
repositories 
    jcenter()
    maven  url 'https://maven.google.com' 
    maven 
        url "https://dl.bintray.com/android/android-tools"
    

    maven  url "https://jitpack.io" 
    google()




task clean(type: Delete) 
delete rootProject.buildDir

【问题讨论】:

【参考方案1】:

进行以下更改后,错误消失了:

    从 app build.gradle 的存储库中删除了 maven url 'https://maven.google.com' 。 在*** build.gradle 的 allprojects/repositories 中将 maven url 'https://maven.google.com' 添加为 first entry 将所有播放服务和 Firebase 依赖项更改为最新版本 将 google-services 插件的版本更改为 classpath 'com.google.gms:google-services:4.0.1'

【讨论】:

看起来很疯狂,但这对我也有用...... 1 或 2 人完成了这项工作(与另一个谷歌部门有问题) @IvanRigamonti .. 你能解释一下这种重新排序方法是如何解决这个问题的吗?有什么技术解释吗? @LordCommander 我假设 Gradle 根据 build.gradle 文件中的顺序加载存储库。因此,在我所描述的更改之后,它首先在 Google 的 maven 存储库中查找依赖项,然后在 jcenter() 并最后在 google():'allprojects repositories maven url 'maven.google.com' jcenter() google( ) ' 我只能猜测另外两个 repos 之一尚未更新依赖项。 google() is the official way to add that maven repo as of Gradle version 4.x 这行得通。但这一点都不好。如此简单的变化,你需要努力让它发挥作用。【参考方案2】:

解决方法是将 google url 放在 jcenter() 上方的 gradle 存储库列表中。

问题来了:https://issuetracker.google.com/issues/80362794

【讨论】:

【参考方案3】:

就我而言:

allprojects 
    repositories 
        google()
        jcenter()
    

解决了我的问题

在我的旧配置中只有“jcenter()” 第一行 jcenter(),第二行 google() 不起作用

【讨论】:

【参考方案4】:

对于我的情况,我从 app gradle 存储库中删除了 mavenCentral(),并将 maven url 'https://maven.google.com' 移动到 project gradle 中的第一个位置,正如 Ivan Rigamonti 上面所建议的那样。不需要Firebase依赖性更新。

(这应该是评论,但我没有足够的声誉)

【讨论】:

【参考方案5】:

我今天遇到了同样的问题。直到现在它工作正常。可能是暂时的 Google 服务器问题。

对我有用的解决方案是使用旧版本的 google-play-services:

implementation 'com.google.android.gms:play-services-maps:11.4.2'

【讨论】:

如果我只更改地图的版本代码,那么我必须更改所有 google play 服务中的版本代码......如果没有,我将导致版本冲突【参考方案6】:

改变

compile 'com.google.android.gms:play-services-safetynet:15.0.1'
compile 'com.google.android.gms:play-services-maps:15.0.1'
compile 'com.google.android.gms:play-services-places:15.0.1'
compile 'com.google.android.gms:play-services-location:15.0.1'

compile 'com.google.android.gms:play-services-safetynet:16.0.0'
compile 'com.google.android.gms:play-services-maps:16.0.0'
compile 'com.google.android.gms:play-services-places:16.0.0'
compile 'com.google.android.gms:play-services-location:16.0.0'

是我的情况,它有效!

【讨论】:

【参考方案7】:

会不会是google改变了服务端包的命名约定?

我刚刚在使用不同的播放服务包时遇到了同样的问题。

即play-services-basement.aar...

我是这么想的

Could not find play-services-tasks.aar

表示它正在寻找名为 play-services-tasks.aar 的文件

在服务器上调用此文件:

play-services-tasks-15.0.1.aar

我认为这要么是文件未正确命名的 gradle 问题,要么是文件未正确命名的服务器端问题。

如果我在这里弄错了,请纠正我。

编辑:这个问题应该报告给 jcenter.bintray.com,因为他们是在他们的服务器端出现错误的人。切换到 Ivan Rigamonti 提到的 Maven 存储库可能是一个解决方案,但我不确定 ionic 应用程序如何处理切换存储库。

EDIT2:切换到 Maven 存储库确实适用于 ionic。对于 ionic,我所要做的就是通过将 jcenter() 放在 buildscript 存储库和 allprojects 存储库中的 maven() 下面来更改 build.gradle。

【讨论】:

是的,我意识到链接有效,但我也看到 gradle 中命名的文件与 url 中的文件不同,这可能是它出现此问题的原因?基本上版本不会附加到 gradle 文件的末尾... 我现在不确定自己该做什么。我认为这是必须从谷歌端修复的东西?我只是在这里假设,我并没有真正提供实际的解决方案,而是根据我认为正在发生的事情扩展问题。根据查看此主题的人数,我猜现在有更多人遇到此问题。 是的,但是对于不同的包,play-services-basement.aar 相同的症状,网址有效但错误仍然存​​在。 我认为很多开发人员都遇到了这个问题 我认为存储库(服务器端)存在一些问题,因为该错误已多次报告【参考方案8】:

如果你们遇到像 build.gradle error 一样的错误,无法解决:常见 像这样 build.gradle error , Failed to resolve: common

然后在 Project build.gradle

的 repositories 范围内的 allprojects 范围内放入以下行

行:

 maven  url 'https://maven.google.com' 
        jcenter()
        google()

例子

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

【讨论】:

以上是关于Gradle 构建工具找不到 play-services-tasks.aar?为啥?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:Gradle 构建无法生成 .apk 文件。这个文件很可能是在***下生成的,但是工具找不到

找不到构建工具修订版 25.0.0

导入 gradle 项目 Eclipse 时出错:找不到目标

IDEA中Gradle构建失败找不到类路径的解决方法!

科尔多瓦 Android 要求失败:“找不到安装的 Gradle 版本”

Gradle Android 构建项目错误:找不到元数据资源