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/gradle-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() 方法的主要内容,如果未能解决你的问题,请参考以下文章