【问题标题】:Gradle build tool cannot find play-services-tasks.aar? Why?Gradle 构建工具找不到 play-services-tasks.aar?为什么?
【发布时间】:2018-11-07 00:17:45
【问题描述】:

今天突然,我在 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
    }
    

【问题讨论】:

    标签: android maven gradle android-gradle-plugin google-play-services


    【解决方案1】:

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

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

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

    【讨论】:

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

    会不会是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 相同的症状,网址有效但错误仍然存​​在。
    • 我认为很多开发人员都遇到了这个问题
    • 我认为存储库(服务器端)存在一些问题,因为该错误已多次报告
    【解决方案3】:

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

    1. 从 app build.gradle 的存储库中删除了 maven { url 'https://maven.google.com' }
    2. 在顶级 build.gradle 的 allprojects/repositories 中将 maven { url 'https://maven.google.com' } 添加为 first entry
    3. 将所有播放服务和 Firebase 依赖项更改为最新版本
    4. 将 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 之一尚未更新依赖项。
    • 这行得通。但这一点都不好。如此简单的变化,你需要努力让它发挥作用。
    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

        如果你们遇到像 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()
            }
        

        【讨论】:

          【解决方案7】:

          就我而言:

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

          解决了我的问题

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

          【讨论】:

            【解决方案8】:

            改变

            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'
            

            是我的情况,它有效!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-06-16
              • 1970-01-01
              • 1970-01-01
              • 2018-11-20
              • 2018-11-06
              相关资源
              最近更新 更多