摘要:
当前正准备学习ButterKnife
框架,在module的构建文件build.gradle
添加了ButterKnife
依赖包以及gradle plugin下载地址,点击Sync Now
,提示错误Gradle sync failed: Could not find...
,如下图:
提示错误的信息,如下所示:
Gradle sync failed: Could not find com.android.tools.build:gradle:2.3.3.
Searched in the following locations:
https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.3.3/gradle-2.3.3.pom
https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.3.3/gradle-2.3.3.jar
Required by:
project :app-butterknife > com.jakewharton:butterknife-gradle-plugin:8.8.1
Consult IDE log for more details (Help | Show Log)
一、 错误解决的办法
在module引用ButterKnife
的配置,完成按照开源框架文档说明,点击Sync Now
仍然提示Gradle sync failed
,找不到当前插件依赖的gradle 2.3.3版本,打开上述路径,不存在对应的.pom
和.jar
文件,却存在其它版本的。
解决的办法:
将mavenCenter()
注释掉或删除,添加jcenter()
,其它依赖不需要改动,如下图:
这时,重新Sync Now
,问题解决。
1.1 Failed to resolve:com.android.support
在我自己的项目中,解决了第一个问题,出现新的问题,ButterKnife
需要依赖support-compat:25.3.0
,如下图:
解决的办法:
点击Install Repository and sync project
,等待下载并同步项目,最终项目可以正常运行。
二、关于Maven Central和JCenter
虽然解决了上述问题,但还是想要了解一下Maven Central和JCenter有什么不同,Maven Center和JCenter是两个公认的在线仓库,在同一个构建文件只需要选择其中一个,同时推荐选择JCenter仓库,JCenter仓库也是Android Studio创建项目默认的仓库。
Android Studio创建的一个项目,可以包含多个module,在项目的根目录找到build.gradle
文件,查看默认仓库,如下图:
除了项目根目录有一个build.gradle
文件外,在每个module根目录底下也包含一个build.gradle
,后者的构建文件继承自项目底下的build.gradle
,同时后者也会覆盖前者的配置,比如:项目根目录和module根目录下的build.gradle
同时添加了buildsscript
,项目根目录下的配置会被覆盖。
JCenter是Maven Central的扩展集合,如果当前的仓库,会完整保留已下载的依赖,同时,JCenter支持HTTPS请求,而Maven Central不支持。
可以进一步猜想,当前ButterKnife
依赖的gradle:2.3.3
可能在Maven Central被移除,所以下载失败,最终提示错误Gradle sync failed
,建议以后将mavenCentral()
统一改成jcenter()
。
当前文章价值1.42元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)
你可能感兴趣的文章
转载请注明出处: https://www.teachcourse.cn/could-not-find-com-android-tools-build ,谢谢支持!