android - 循环内的命令行

标签 android groovy gradle android-gradle-plugin build.gradle

我正在使用在文件收集循环中执行命令行的 gradle 任务:

...
collection.each { file ->
        exec {
            workingDir = file(props['WORKING_DIR']).getAbsolutePath()
            commandLine "java", "-jar", file(props['SIGN_TOOL']).getAbsoluteFile(), file
        }
    }
...

不幸的是,gradle 任务以这个错误结束:

Execution failed for task ':signFiles'.

No signature of method: java.io.File.call() is applicable for argument types: (java.lang.String) values: Possible solutions: wait(), any(), wait(long), each(groovy.lang.Closure), any(groovy.lang.Closure), list()

我该如何解决这个问题?

感谢 MVM

最佳答案

你已经调用了你的循环变量 file 然后它试图用它来调用 file()...

尝试重命名您的闭包变量:

collection.each { aFile ->
    exec {
        workingDir = file(props['WORKING_DIR']).getAbsolutePath()
        commandLine "java", "-jar", file(props['SIGN_TOOL']).getAbsoluteFile(), aFile
    }
}

关于android - 循环内的命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23367153/

相关文章:

java - 如何在运行时转换包含groovy表达式的纯java字符串?

gradle - 任务输出缓存已启用,但未配置或启用任何构建缓存

android - android 中是否有任何等效的 CI Image library(ios)?

android - 如何将事件从一个 fragment 中的列表适配器发送到另一个 fragment ?

android - 单击Android Studio中的更新Gradle后无法进行Cant Gradle同步-错误:Gradle 2.14.1需要Android Gradle插件2.1.3(或更高版本)

jenkins - 如何测试 Jenkins 插件是否安装在 Pipeline DSL (Groovy)

Android:将变量传递给已经运行的服务

mysql - 使用groovy连接MySQL表后如何使用表别名来区分多个属性

android - 如何确定哪个依赖项正在确定其他库的版本?

Gradle运行命令行进程: execute() vs commandLine