Gradle版本3.3不支持BuildActionExecuter上的toTask()方法

时间:2017-05-26 16:42:44

标签: gradle android-studio-3.0

我刚刚将Android Studio更新为3.0 canary 1。 现在我正在研究Android Studio 3.0 canary 1上的现有项目。 默认情况下, gradle:3.0.0-alpha1 在我的项目中设置:gradle_file。 所以我将我的gradle版本更改为2.2.3,现在我收到了这个错误:

  

错误:无法完成Gradle执行。

     

原因:您使用的Gradle版本(3.3)不支持   BuildActionExecuter上的forTasks()方法。对此的支持是   可在Gradle 3.5和所有更高版本中使用。

我在这里附上我的gradle文件

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

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

10 个答案:

答案 0 :(得分:195)

我刚才遇到了同样的问题。通过在“gradle-wrapper.properties”中更改Gradle distributionUrl来修复它。

以下是我配置的内容:

#Wed Mar 22 16:13:58 BRT 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

了解更多详情

帮助迁移的官方视频 https://www.youtube.com/watch?v=oBsbI8ICYKg

另见@TmTron的评论

答案 1 :(得分:60)

更改文件“gradle-wrapper.properties”。

放置此行和同步项目 -

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

这会奏效。查看最新版本services.gradle.org/distributions

构建菜单中更改后,同步项目,清除重建项目一次。

答案 2 :(得分:28)

尝试构建调试apk时发生这种情况。

解决方案: 将Gradle版本更新为3.5

导航至文件 - >项目结构 - >项目 - > Gradle版本= 3.5

  

这适用于Android Studio 3.0

this is the image of the menu where you have to make the change

答案 3 :(得分:14)

请按照以下步骤操作:

  1. 在android studio中打开您的项目
  2. 在Android菜单中,打开 gradle-wrapper.properties
  3. 使用以下行更改分发网址
  4.   

    distributionUrl = HTTPS://services.gradle.org/distributions/gradle-4.1-all.zip

    1. 多数民众赞成。立即构建您的项目。
    2. 附上截图以获得更多理解。 enter image description here

答案 4 :(得分:5)

我在gradle-wrapper.properties文件中的以下代码中通过changinf distributionUrl解决了这个问题

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

答案 5 :(得分:2)

使用顶级Gradle添加这些

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

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

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

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

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

答案 6 :(得分:1)

我们有两种方法可以处理它。

  1. 您可以将gradle的版本从早期版本更新为3.5版本产品;

  2. 或者,您可以将您的gradle包装器计算为4.1版本。

  3. 所有方法都很有用。

答案 7 :(得分:1)

仅将gradle URL更改为

" distributionUrl = https://services.gradle.org/distributions/gradle-4.1-all.zip"

如下图:

enter image description here

答案 8 :(得分:0)

  1. 打开gradle-wrapper.properties
  2. 替换:

    distributionUrl = HTTPS://services.gradle.org/distributions/gradle-3.3-all.zip

  3. 使用:

    distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
    
    1. 现在同步项目
    2. Click here for more understand

答案 9 :(得分:0)

将此代码放在gradle-wrapper.properties文件中,它将与您合作

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip