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 文件。这个文件很可能是在***下生成的,但是工具找不到
导入 gradle 项目 Eclipse 时出错:找不到目标