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

Posted

技术标签:

【中文标题】Gradle 3.3 版不支持 BuildActionExecuter 上的 forTask() 方法【英文标题】:Gradle version 3.3 does not support forTask() method on BuildActionExecuter 【发布时间】:2017-10-27 15:13:36 【问题描述】:

我刚刚将我的 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

【问题讨论】:

谁能建议你如何解决这些问题而无需更新 gradle 版本和 android 插件版本?因为这样做需要进行很多其他更改,由于某些业务限制,我们无法进行。 【参考方案1】:

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

【讨论】:

任何想了解最新发行版的人,请转到目录services.gradle.org/distributions。都列出来了 请在更改为特定版本之前阅读@I.G.Pascual 评论,因为您可以将版本更新到当前可用的最新版本。发布此评论时,当前版本为 4.0(稳定)。所以换成distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip是安全的 打开多模块应用程序时请注意:Android Studio 可能只会在 Project-Android 视图中向您显示一个 gradle-wrapper 属性字段。要确保更改所有内容,请使用 Find in Path (CTRL+SHIFT+F) 并搜索 distributionUrl 我也遇到了同样的问题,下面的错误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 的gradle-wrapper.properties 文件 感谢您的提醒,@TmTron,这是我的问题。 falico,如果您不介意,我认为在您上面的回答中突出显示 TmTron 的评论会很有帮助。【参考方案2】:

文件“gradle-wrapper.properties”的变化。

把这条线和同步项目-

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

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

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

【讨论】:

在更改到特定版本之前检查services.gradle.org/distributions,因为您可以将版本更新到当前可用的最新版本。发布此评论时,当前版本为 4.0(稳定)。所以换成distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.0-all.zip是安全的,因为比milestone-1版本更稳定 是的,你是对的,总是比其他版本更喜欢稳定版本。但你仍然可以使用它。 @HendraWD 感谢您的评论。 将 Android Studio 从 2.3 更新到 3.0,查看来自 youtube.com/watch?v=oBsbI8ICYKg 的官方指南【参考方案3】:

这发生在尝试构建调试 apk 时。

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

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

这适用于 Android Studio 3.0

【讨论】:

这是那些故意不想升级到 gradle 4 的解决方案。 它没有。它升级到 Gradle 版本 3.5,这是他想要使用的功能的最低版本。【参考方案4】:

请按照以下步骤操作:

    在 android studio 中打开您的项目 在 Android 菜单中,打开 gradle-wrapper.properties 使用下面的行更改分发 url 行

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

    就是这样。立即构建您的项目。

附上截图以供更多理解。

【讨论】:

错误:无法为锁定文件创建父目录 C:\Users\Kaveesh\.gradle\wrapper\dists\gradle-4.1-all\bzyivzo6n839fup2jbap0tjew\gradle-4.1-all.zip.lck 显示锁定问题。 android studio 无法创建目录。【参考方案5】:

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

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

【讨论】:

【参考方案6】:

一旦使用*** 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

【讨论】:

【参考方案7】:

我们有两种处理方式。

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

    或者,您可以将您的 gradle 包装器设置为 4.1 版本。

所有的方法都是有用的。

【讨论】:

【参考方案8】:

仅将 gradle URL 更改为

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

如下图:

【讨论】:

【参考方案9】:
    打开 gradle-wrapper.properties

    替换:

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

与:

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

Click here for more understand

【讨论】:

【参考方案10】:

将此代码放入 gradle-wrapper.properties 文件中,它将与您一起使用

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

【讨论】:

以上是关于Gradle 3.3 版不支持 BuildActionExecuter 上的 forTask() 方法的主要内容,如果未能解决你的问题,请参考以下文章

关闭“Python 3.5 版不支持变量注释”错误消息

IDEA 社区版不支持 Tomcat?一招完美解决!

vs2015社区版不支持installshield

为啥说稳定版不支持ROOT权限,怎样解决。谢谢。

使用 Java 11 运行 sonarqube-gradle-plugin:3.3 时出错

项目方面java 1.8版不存在