摘要:
当前正准备学习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()。
当前文章价值7.41元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章
转载请注明出处: https://teachcourse.cn/could-not-find-com-android-tools-build ,谢谢支持!