找不到属性' uninstallDebug'在项目上

时间:2016-02-24 07:38:34

标签: android gradle android-gradle

在我的项目中,我想运行我的自定义任务" MyTask"在卸载之前运行。相同的代码是

uninstallDebug.dependsOn "MyTask"

当我运行它时,它失败并出现错误

Could not find property 'uninstallDebug' on project

然而,我看到Gradle窗口中列出了一个具有该名称的gradle任务。 可能出现什么问题?

3 个答案:

答案 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 {}