studio problemas muestra error diseƱo con gradle

gradle - problemas - error sdk android studio



La tarea exle de Gradle devuelve un valor de salida distinto de cero y falla la compilaciĆ³n, pero no quiero fallar y en su lugar realizar otra tarea (2)

No se puede dejar un comentario, pero otra solución si la respuesta ignoreExitValue no funciona es simplemente rodear la línea de commandLine con un commandLine try { ... } catch (Exception e() { ... } .

Tengo una tarea ejecutiva configurada de manera bastante predeterminada, algo como:

task myTask(type:Exec) { workingDir ''.'' commandLine ''./myscript.sh'' doLast { if(execResult == 0) { //one thing } else { //another thing } } }

Pero, desafortunadamente, nunca ejecuta el bloque doLast cuando el script lanza un error. En su lugar, se salta eso y falla la compilación completa con

La ejecución falló para la tarea '': project: myTask''. El ''comando'' ./myscript.sh '''' del proceso terminó con un valor de salida distinto de cero 1 "

Eso es inútil para mí. La idea general de que myscript.sh termine con un valor de salida distinto de cero es que luego pueda ejecutar algún código en respuesta a él. ¿Qué debo hacer para no fallar la compilación pero capturar el resultado y realizar una acción en respuesta? ¡Gracias por la ayuda!


TL; DR - Use ignoreExitValue = true

Cuando leí la documentación por quincuagésima vez, finalmente vi que hay una propiedad, ignoreExitValue, que por defecto es falsa. Pero si lo establece en verdadero, entonces puede realizar sus propias tareas en el bloque doLast.

task myTask(type:Exec) { workingDir ''.'' commandLine ''./myscript.sh'' ignoreExitValue true doLast { if(execResult == 0) { //one thing } else { //another thing } } }