无法找到 com.android.tools.build:gradle:3.0.0。

20

当我尝试通过命令行构建我的Android项目时,出现以下错误信息:

配置项目':mylib'时出现问题。 无法解决':mylib:classpath'的所有文件。 无法找到com.android.tools.build:gradle:3.0.0。 已在以下位置搜索:
https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom
https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.jar https://repo1.maven.org/maven2/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom
https://repo1.maven.org/maven2/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.jar 项目:mylib所需。

当我尝试直接通过浏览器访问例如地址 "https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom" 时,显示以下内容:

{
  "errors" : [ {
    "status" : 404,
    "message" : "Could not find resource"
  } ]
}

根gradle文件包含以下代码:

dependencies {
  classpath 'com.android.tools.build:gradle:3.0.0'

  // NOTE: Do not place your application dependencies here; they belong
  // in the individual module build.gradle files
}

...

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

而 gradle-wrapper.properties 文件包含以下值:

#Fri Oct 27 10:09:16 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

如果我从Android Studio 3.0编译,相同的配置可以正常工作。 但是如果我尝试直接从命令行编译,则会收到错误。

有谁能帮帮我吗?

2个回答

30

我的问题是执行"./gradlew assembleDebug"出现了,但在Android Studio中构建成功了。我是通过以下方法解决的。

repositories {
    jcenter()
    google()
}
或者
repositories {
    jcenter()
    maven {
        url 'https://maven.google.com'
    }
}

如果您使用的Gradle版本低于4.1,请使用第二个选项:https://developer.android.com/studio/build/dependencies.html - jbarradas
2
在我的情况下,特别是在存储库中添加google()解决了这个问题。(jcenter()已经存在)。 - BenLeah
请注意,在所有 build.gradle 中添加 jcenter()google() 以解决错误。 - 林果皞

4

我不是很确定,但也许你应该尝试将repositories标签放在与dependencies标签相同的级别。所以:

buildscript {
    repositories {
        ...
    }
    dependencies {
        ...
    }
}

谢谢,那就是解决方案。我刚刚也有了同样的想法(当然是在我发出请求之后;)),它起作用了。 - tangens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接