为什么我会收到 "could not find com.android.tools.build:gradle" 错误?

Why am I getting "could not find com.android.tools.build:gradle" error?

这也是基于我的最后一个 question

在此 tutorial 之后,我将项目克隆到我的机器中,并试图让项目正确构建。

在修复我上一个问题的错误的过程中,我遇到了一个新的错误。
这是构建脚本的一部分,我正在尝试 fix/edit

buildscript {
     repositories {
         mavenCentral()
         mavenLocal()
         maven { url 'https://github.com/steffenschaefer/gwt-gradle-plugin/raw/maven-repo/' }
      }
      dependencies {
            classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.3'
            classpath 'com.android.tools.build:gradle:1.2.3'
      }
 }

按照 关于如何检查 Gradle 版本,我检查了我的,发现我是 运行 Gradle 版本 2.2.1。基于此,我更改了

    classpath 'com.android.tools.build:gradle:1.2.3'

   classpath 'com.android.tools.build:gradle:2.2.1'

然而,在更改构建脚本代码并尝试重建我的项目后,我遇到了上述错误(完整堆栈跟踪如下)

    Error:Could not find com.android.tools.build:gradle:2.2.1.
Searched in the following locations:
    file:/C:/Program Files/Android/Android Studio/gradle/m2repository/com/android/tools/build/gradle/2.2.1/gradle-2.2.1.pom
    file:/C:/Program Files/Android/Android Studio/gradle/m2repository/com/android/tools/build/gradle/2.2.1/gradle-2.2.1.jar
    https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.2.1/gradle-2.2.1.pom
    https://repo1.maven.org/maven2/com/android/tools/build/gradle/2.2.1/gradle-2.2.1.jar
    file:/C:/Users/chris/.m2/repository/com/android/tools/build/gradle/2.2.1/gradle-2.2.1.pom
    file:/C:/Users/chris/.m2/repository/com/android/tools/build/gradle/2.2.1/gradle-2.2.1.jar
    https://github.com/steffenschaefer/gwt-gradle-plugin/raw/maven-repo/com/android/tools/build/gradle/2.2.1/gradle-2.2.1.pom
    https://github.com/steffenschaefer/gwt-gradle-plugin/raw/maven-repo/com/android/tools/build/gradle/2.2.1/gradle-2.2.1.jar
Required by:
    :theplanethatcouldntflygood:unspecified

有谁知道我为什么会收到此错误或如何解决此问题?将 Java 编译器(类路径)指向我什至没有使用的 Gradle 版本对我来说没有意义。

您混淆了 android gradle 插件和 gradle 版本。

classpath 'com.android.tools.build:gradle:1.2.3' 是 Android 的 gradle 插件,截至目前,1.2.3 是最新的。

gradle 版本本身在 gradle-wrapper.properties 文件中。 2.4 是最新版本,

您可以在此地址找到最新版本:
repo1.maven.org/maven2/com/android/tools/build/gradle
jcenter.bintray.com/com/android/tools/build/gradle

buildscript {
repositories {
    maven { url "https://jcenter.bintray.com" }
    maven { url "http://repo1.maven.org/maven2" }
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}
}

allprojects {
repositories {
    maven { url "https://jitpack.io" }
    maven { url "https://jcenter.bintray.com" }
    maven { url "http://repo1.maven.org/maven2" }
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

根据@Hamidreza 的回答,检查 maven and jcenter 回购协议。事实上,jcenter(目前)拥有比 maven 更新的工具。

所以在顶级 build.gradle 文件中, 像这样将 "mavenCentral" 更改为 "jcenter"

repositories {
    //mavenCentral()
    jcenter()
}

我通过升级我的 Android Studio 版本解决了这个问题。我收到一个错误 Could not find com.android.tools.build:gradle:2.2.0,当时是 运行 2.1.x 版本的 Studio。

简单升级到 2.2.2 立即解决了我的问题。希望这可以帮助别人!

如果您使用代理,请确保 Android Studio 已为此设置。它不采用系统代理设置。

我的 Studio + Gradle 副本未设置为通过代理,因此它给了我这个错误。如果能得到一个清晰的 "hey buddy, I can't hit the web" 就好了,但我却收到了这个错误。