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


111

我刚刚将Android Studio更新为3.0 canary1。现在,我正在Android Studio 3.0 canary 1上处理现有项目。默认情况下,在我的项目gradle_file中设置了gradle:3.0.0-alpha1。所以我将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
}

5
谁能建议您如何解决这些问题而不必更新gradle版本和android插件版本?因为这样做需要进行许多其他更改,但由于某些业务限制,我们无法执行这些更改。
浦佐助(Sasuke Uchiha),

Answers:


196

我刚遇到同样的问题。通过更改“ 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的评论


19
对于想了解最新发行版的任何人,请转到目录 services.gradle.org/distributions。所有这些都列
IG帕斯夸尔

4
在更改为特定版本之前,请先阅读@IGPascual注释,因为您可以将版本更新为当前可用的最新版本。发表此评论时,当前版本为4.0(稳定)。因此,如果您更改为distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
HendraWD,2017年

4
打开多模块应用程序时请务必小心:Android Studio可能仅在Project-Android视图中显示一个gradle-wrapper属性字段。要确保更改所有内容,请使用“在路径中查找(CTRL + SHIFT + F)”并搜索distributionUrl
TmTron

我也遇到了以下错误的相同问题, Cause: The version of Gradle you are using (3.3) does not support the forTasks() method on BuildActionExecuter. Support for this is available in Gradle 3.5 and all later versions. 因此我为distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
ViramP

1
谢谢您的提示,@ TmTron,这是我的问题。falico,如果您不介意的话,我认为在上面的答案中突出TmTron的评论将是有益的。
BareMetalCoder

64

在文件“ gradle-wrapper.properties”中进行更改

把这行和同步项目-

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

这将起作用。对于Check最新版本services.gradle.org/distributions

更改后,从“ 生成”菜单一次同步项目,清理重建项目。


4
在更改为特定版本之前,请检查services.gradle.org/distributions,因为您可以将版本更新为当前可用的最新版本。发表此评论时,当前版本为4.0(稳定)。因此,如果更改为distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.0-all.zip,则是安全的,因为它比milestone-1版本更稳定
HendraWD

是的,您是对的,始终比其他版本更喜欢稳定版本。但是您仍然可以使用它。@HendraWD感谢您的评论。
Kailas Bhakade

将Android Studio从2.3更新到3.0,请从youtube.com/watch?v=oBsbI8ICYKg
Kailas Bhakade

28

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

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

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

这适用于Android Studio 3.0

这是您必须进行更改的菜单图像


这是针对那些不想升级到gradle 4的解决方案。–
ram

没有。它升级到Gradle版本3.5,这是他要使用的功能的最低要求。
Quinton M.

14

请按照以下步骤操作:

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

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

  1. 而已。现在建立您的专案。

随附屏幕截图,以供您进一步了解。 在此处输入图片说明


错误:无法为锁定文件C:\ Users \ Kaveesh \ .gradle \ wrapper \ dists \ gradle-4.1-all \ bzyivzo6n839fup2jbap0tjew \ gradle-4.1-all.zip.lck创建父目录
Kaveesh Kanwal

它显示了锁定问题。android studio无法创建目录。
Naveed Ahmad

5

我通过gradin-wrapper.properties文件中的以下代码中的changinf distributionUrl解决了该问题

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

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
}

1

我们有两种处理方法。

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

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

所有方式都有用。



0
  1. 打开gradle-wrapper.properties
  2. 更换:

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

带有:

distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
  1. 现在同步项目

点击这里了解更多


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.