在圆圈ci中找不到com.android.tools.build:gradle:3.0.0-alpha1

时间:2017-05-19 13:13:03

标签: android android-studio gradle build circleci

我将gradle插件更新为最新版本:com.android.tools.build:gradle:3.0.0-alpha1并发生此错误:

export TERM="dumb"
if [ -e ./gradlew ]; then ./gradlew test;else gradle test;fi

FAILURE: Build failed with an exception.

What went wrong:
    A problem occurred configuring root project 'Android-app'. Could not
 resolve all dependencies for configuration ':classpath'. Could not
 find com.android.tools.build:gradle:3.0.0-alpha1. Searched in the
 following locations:
 https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-alpha1/gradle-3.0.0-alpha1.pom
 https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0-alpha1/gradle-3.0.0-alpha1.jar
 Required by:

Current circle.yml

dependencies:
   pre:
      - mkdir -p $ANDROID_HOME"/licenses"
      - echo $ANDROID_SDK_LICENSE > $ANDROID_HOME"/licenses/android-sdk-license"
      - source environmentSetup.sh && get_android_sdk_25

   cache_directories:
    - /usr/local/android-sdk-linux
    - ~/.android
    - ~/.gradle
   override:
    - ./gradlew dependencies || true

test:
  post:
    - mkdir -p $CIRCLE_TEST_REPORTS/junit/
    - find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \;

machine:
    java:
        version: oraclejdk8

编辑: 我的gradle文件:

buildscript {
  repositories {
    jcenter()
    maven {
      url 'https://maven.google.com'
    }
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0-alpha1'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath "io.realm:realm-gradle-plugin:3.1.3"
  }
}

allprojects {
  repositories {
    mavenCentral()
    jcenter()
  }
}

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

14 个答案:

答案 0 :(得分:321)

谷歌有新的maven回购,所以可能是原因。

https://android-developers.googleblog.com/2017/10/android-studio-30.html> Google的Maven资源库

https://developer.android.com/studio/preview/features/new-android-plugin-migration.html https://developer.android.com/studio/build/dependencies.html#google-maven

所以也许(未经测试)添加对maven repo的依赖:

buildscript {
    repositories {
        ...
        // You need to add the following repository to download the
        // new plugin.
        google() // new which replace https://maven.google.com
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'  //Minimum supported Gradle version is 4.6.
    }
}

答案 1 :(得分:92)

对于通过命令行编译的内容,我需要在两个buildscriptallprojects中包含maven repo。

root build.gradle

buildscript {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha2'
        ...
    }
}

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

需要在buildscript块中找到AGP,并在allprojects块中查找android.archcom.android.databinding个包(以及其他)

更新: 看起来新的repo只是被称为google(),但我仍然需要在两个地方声明它。

答案 2 :(得分:31)

要在此处和其他地方同步所有答案:

buildscript {
  repositories {
    google() 
    jcenter()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0'

  } }

使build.gradle中的buildcript看起来像这样。它在google和jcenter之间找到所有这些。在这个答案中,只有其中一个人找不到所有的依赖关系。

答案 3 :(得分:14)

mtrakal的解决方案运行良好。

添加到gradle.build:

buildscript {
    repositories {
        maven { url 'https://maven.google.com' }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha2'

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

allprojects {
    repositories {
        jcenter()
    }
}

然后它会自动升级为alpha2。

使缓存无效并重新启动一切正常。

文件|使高速缓存/重新启动无效

选择'无效&重新启动'

答案 4 :(得分:7)

我这样做了:

点击SDk Manager:

enter image description here

更改Canary频道的更新,检查并更新...

enter image description here

进入build.gradle并将编译版本更改为26.0.0-beta2:

enter image description here

进入gradle / build.gradle并更改依赖关系classpath'com.android.tools.build:gradle:3.0.0-alpha7':

enter image description here

同步项目后...... 它对我有用! 我希望我帮助过... tks!

答案 5 :(得分:6)

对于伊朗的用户:我们需要使用代理 VPN 来构建应用。

原因:Google服务器的抵制导致您无法构建应用或升级需求。

答案 6 :(得分:5)

确保在顶级build.gradle中添加以下行,并且应该修复它。

maven { url 'https://maven.google.com' }

我在上面提到了完全相同的错误,一旦我添加了这个条目,一切正常。

答案 7 :(得分:2)

更新:令人难以置信的令人沮丧,但maven.google.com回购的Google重定向似乎与加载资源混乱。如果您改为将存储库设置为 maven { url 'https://dl.google.com/dl/android/maven2' } 文件将解决。您可以尝试通过https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.0-alpha1/gradle-3.0.0-alpha1.pom 3.0.0 Alpha

获取完全限定的资源来证明这一点

这是因为目前gradle:3.0.0-alpha1仅通过新的'https://maven.google.com'存储库提供,但该网站目前在该位置为404,否则,作为公共目录,您将看到一棵树只需导航到浏览器中的该位置即可列出所有可用文件。当他们解决他们的中断时,您的CI构建应立即通过。

答案 8 :(得分:1)

我在谷歌找到了这个:https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

它提到我们需要

  1. 将Gradle版本更新为gradle-4.1-all(gradle-wrapper.properties
  2. 更改distributionUrl=\https\://services.gradle.org/distributions/gradle-4.1-all.zip
  3. 将google()添加到存储库repositories { google() }dependencies { classpath 'com.android.tools.build:gradle:3.0.0-beta7' }
  4. 您可能需要安装Android Studio 3

答案 9 :(得分:1)

Android Studio(预览版)有时会建议更新为尚未提供的Gradle插件(谷歌是否忘记发布它?)。比如今天用

  

' com.android.tools.build:gradle这个:3.1.0-β1'

我发现我可以在这里看到com.android.tools.build:gradle的当前版本,然后我选择最新版本:

https://dl.google.com/dl/android/maven2/index.html

我刚在Android Bug Tracker找到了这个beta1 gradle bug。我刚刚学习了Android Studio>帮助菜单>提交反馈意见将我带到了bug跟踪器。

androiddev reddit找到3.1.0-beta1问题的临时解决方案:回滚到预览Canary 8,或切换到gradle插件3.0.1,直到很快发布Canary 10。

答案 10 :(得分:1)

对我来说,我只是通过在存储库中添加此行来解决此错误

maven { url 'https://maven.google.com' }

答案 11 :(得分:0)

我的问题是我忘记在gradle.properties的{​​{1}}中添加了一个代理,如:

C:\Users\(current user)\.gradle

答案 12 :(得分:0)

当将Android Studio从3.2更新到3.3并测试每个我都没有用的答案时,我遇到了这个问题。最后,我启用了Maven存储库及其工作。

enter image description here

答案 13 :(得分:0)

只需添加此

buildscript {
    repositories {
        ...
        google() 
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0' 
    }
}

有效...干杯!!!