gpt4 book ai didi

android - Gradle .execute 方法在 gradle 更新后显示错误

转载 作者:搜寻专家 更新时间:2023-11-01 08:18:00 28 4
gpt4 key购买 nike

在更新到 3.4.1 版本后,我的项目在 gradle 插件版本 3.0.1 上运行完美,我正在经历同步失败。

以前我使用的是包装器 4.10.1,现在已更新为 5.1.1

afterEvaluate(new Action<Project>() {

@Override
void execute(Project project) {
tasks.getByName("assembleRelease").doLast {
tasks.copyReleaseBuild.execute() //error is here
tasks.copyReleaseBuildToXX.execute()
tasks.copyReleaseBuildToXXXX.execute()
}
}

copyReleaseBuild 任务编写如下...

task copyReleaseBuild(type: Copy) {
def releaseDir = getProjectProperty('releaseDir')
if (releaseDir?.trim()) {
//if release folder is provided
def releaseAarFile =
getProjectProperty('sourceCodeDir') + "/android-corekit/kit/build/outputs/aar/kit-release.aar"
from releaseAarFile
into releaseDir
}

task copyReleaseBuildToXX(type: Copy) {
from "./build/outputs/aar/kit-release.aar"
into "../kitwrapper/libs"
}

task copyReleaseBuildToXXXX(type: Copy) {
from "./build/outputs/aar/kit-release.aar"
into "../kitwrapperapp/libs"
}
}

过去两天我一直在尝试解决问题,但由于我对 groovy 缺乏了解,所以没有任何效果。

请检查我在构建项目时收到的错误日志... error log

最佳答案

发生这种情况是因为您使用的是更新版本的 gradle(检查 migration to gradle v5)

The following properties and methods of TaskInternal have been removed — use task dependencies, task rules, reusable utility methods, or the Worker API in place of executing a task directly.

  • execute()
  • executer
  • getValidators()
  • addValidator()

现在你不能直接调用execute方法,但你必须使用任务依赖来获得相同的结果。

只需在您的 build.gradle 中定义:

task copyReleaseBuild {
dependsOn 'assembleRelease'
//...
}

并删除这个:

afterEvaluate(new Action<Project>() {

@Override
void execute(Project project) {
tasks.getByName("assembleRelease").doLast {
tasks.copyReleaseBuild.execute() //error is here
}
}

关于android - Gradle .execute 方法在 gradle 更新后显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56375443/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com