在我的项目中,我想运行我的自定义任务" MyTask"在卸载之前运行。相同的代码是
uninstallDebug.dependsOn "MyTask"
当我运行它时,它失败并出现错误
Could not find property 'uninstallDebug' on project
然而,我看到Gradle窗口中列出了一个具有该名称的gradle任务。 可能出现什么问题?
答案 0 :(得分:0)
project.afterEvaluate { p ->
p.tasks.uninstallDebug.doFirst {
println 'before uninstall'
}
}
答案 1 :(得分:0)
gradle.taskGraph.whenReady {
// if your MyTask is in the same project
uninstallDebug.dependsOn "MyTask"
// if it is else where
uninstallDebug.dependsOn project("someProject").project("subProject).tasks["MyTask"]
}
答案 2 :(得分:0)
uninstallDebug
以及其他几个任务,尤其是那些在其名称中有flavor或buildType名称的任务,在android插件的配置步骤中很晚就被创建并添加到gradle taskGraph中。这意味着,正如您所发现的那样,您可能无法在配置步骤的早期通过名称引用它们,因为它们尚不存在。
其他答案指出的方法是等到相关任务被添加到任务图中。您可以在uninstallDebug.dependsOn "MyTask"
或gradle.taskgraph.whenRead{}
project.afterEvaluate {}
行