为什么我不能在构建脚本中使用gradle task connectedDebugAndroidTest?

时间:2016-03-22 14:32:54

标签: android gradle android-gradle

我可以从构建脚本中引用 connectedCheck 任务(来自android插件):

connectedCheck.finalizedBy AndroidShowTestResults

但是尝试使用 connectedDebugAndroidTest (也来自android插件)

connectedDebugAndroidTest.finalizedBy AndroidShowTestResults

给了我

  

错误:(48,0)找不到属性' connectedDebugAndroidTest'在项目':app'。

如果我尝试

task connectedDebugAndroidTest << {print '123'}

它用

诅咒我
  

错误:无法添加任务&#39;:app:connectedDebugAndroidTest&#39;因为具有该名称的任务已经存在。

我不明白为什么我不能参考 connectedDebugAndroidTest

可用的gradle任务如下所示:

Gradle tasks

3 个答案:

答案 0 :(得分:4)

android插件推迟添加几个任务,特别是那些在其中具有buildType或flavor名称的任务,直到配置阶段的最后阶段。这反过来又意味着如果您尝试按名称引用这些尚未添加的任务,您很可能会看到&#34;不存在&#34;输入错误消息。如果要在延迟创建的任务周围添加依赖关系,则应等到配置完成后:

gradle.projectsEvaluated {
    connectedDebugAndroidTest.finalizedBy AndroidShowTestResults
}

或者,您可以为任务图事件添加一个监听器,这样您就可以在任务图中添加某个任务后立即执行操作:

tasks.whenTaskAdded { task ->
    if (task.name == 'connectedDebugAndroidTest') {
        task.finalizedBy AndroidShowTestResults
    }
}

答案 1 :(得分:0)

尝试

task connectedTest(dependsOn: ["connectedDebugAndroidTest"]){

}
connectedTest.finalizedBy "AndroidShowTestResults"

答案 2 :(得分:-1)

我认为你应该尝试打开测试并重建。

enter image description here