2016-03-22 20 views
12

posso fare riferimento a connectedCheck compito (che veniva da plugin di Android) dal mio script di build:Perché non riesco a utilizzare la funzione gradle connectedDebugAndroidTest nel mio script di build?

connectedCheck.finalizedBy AndroidShowTestResults 

Ma cercando di utilizzare connectedDebugAndroidTest (che veniva da plugin di Android troppo)

connectedDebugAndroidTest.finalizedBy AndroidShowTestResults 

mi dà

Error:(48, 0) Could not find property 'connectedDebugAndroidTest' on project ':app'.

A ND se provo

task connectedDebugAndroidTest << {print '123'} 

mi maledice con

Error:Cannot add task ':app:connectedDebugAndroidTest' as a task with that name already exists.

non comprende perché non posso fare riferimento a connectedDebugAndroidTest?

disponibili compiti Gradle sono riportati di seguito:

Gradle tasks

risposta

3

Il plugin di Android differisce l'aggiunta di diversi compiti in particolare quelli che hanno buildtype o sapore nomi in loro fino a una fase molto avanzata della fase di configurazione. Il che a sua volta significa che se si tenta di fare riferimento a queste attività ancora da aggiungere, in base al nome, è probabile che venga visualizzato un messaggio di errore di tipo "non esistente". Se si desidera aggiungere le dipendenze intorno compiti differite-creato, è necessario attendere fino a quando la configurazione è completa:

gradle.projectsEvaluated { 
    connectedDebugAndroidTest.finalizedBy AndroidShowTestResults 
} 

In alternativa, è possibile aggiungere un ascoltatore a compito-grafico eventi, in modo da poter fare cose non appena un certo attività viene aggiunta al task grafico:

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

Mi scuso per non essere stato in grado di darti la taglia - il mio acc e 'stato sospeso. Grazie per la risposta esplicativa. Il primo snippet di codice non funziona, ma lo fa secont. – Alexey

+1

Il primo snippet di codice ha funzionato per me – thepner

-1

penso che si dovrebbe cercare di aprire prova e ricostruire.

enter image description here

+0

Non ho nemmeno questa casella di controllo. Android Studio 1.5.1. – Alexey

0

Prova

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

} 
connectedTest.finalizedBy "AndroidShowTestResults"