捕获IllegalStateException并停止我的Gradle/Groovy构建并打印消息?

捕获IllegalStateException并停止我的Gradle/Groovy构建并打印消息?,groovy,gradle,android-studio,android-gradle-plugin,Groovy,Gradle,Android Studio,Android Gradle Plugin,我有这个: task buildNative(type: Exec) { try { if(System.getenv().NDK_HOME != null) { def ndkBuild = new File(System.getenv().NDK_HOME, 'ndk-build') workingDir "jni" executable ndkBuild } else {

我有这个:

task buildNative(type: Exec) {
    try {
        if(System.getenv().NDK_HOME != null) {
            def ndkBuild = new File(System.getenv().NDK_HOME, 'ndk-build')
            workingDir "jni"
            executable ndkBuild
        } else {
            doLast {
                println 'Reason: NDK_HOME not set...'
            }
        }
    } catch(IllegalStateException){
        println 'Reason: NDK_HOME not set...'
    }
} 
由于NDK_HOME没有设置在我的环境中,我想停止构建并打印一条消息。我该怎么做

如果我使用--stacktrace运行gradle assembleRelease,我会得到:

Caused by: java.lang.IllegalStateException: execCommand == null!
如果我与gradle AssemblereRelease一起运行,我会得到:

* What went wrong:
Execution failed for task ':primavista-android-reloaded:buildNative'.
> execCommand == null!
我想:

Reason: NDK_HOME not set...
在Android Studio中,即使我有正确的NDK_主页,它也不会运行。错误如下:

Execution failed for task ':primavista-android-reloaded:buildNative'.
> execCommand == null!


这并不能解释为什么首先检查
DK_HOME
而不是
NDK_HOME
。因为我知道DK_HOME不存在于我的环境中,所以这只是一个测试。它没有停止。对不起,我不知道是什么问题。请改进您的问题:primavista android重新加载:buildNative失败:生成失败,出现异常。*错误:任务执行失败:primavista android已重新加载:buildNative'>execCommand==null!*尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。构建失败这可能意味着
NDK\u构建已设置。通过在if语句中添加一些
println
s,可以很容易地验证这一点。也许您遇到了其他问题。这并不能解释为什么您首先检查
DK_HOME
,而不是
NDK_HOME
。因为我知道DK_HOME在我的环境中不存在,所以这只是一个测试。它没有停止。对不起,我不知道是什么问题。请改进您的问题:primavista android重新加载:buildNative失败:生成失败,出现异常。*错误:任务执行失败:primavista android已重新加载:buildNative'>execCommand==null!*尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。构建失败这可能意味着
NDK\u构建已设置。通过在if语句中添加一些
println
s,可以很容易地验证这一点。也许您遇到了其他问题。这并不能解释为什么您首先检查
DK_HOME
,而不是
NDK_HOME
。因为我知道DK_HOME在我的环境中不存在,所以这只是一个测试。它没有停止。对不起,我不知道是什么问题。请改进您的问题:primavista android重新加载:buildNative失败:生成失败,出现异常。*错误:任务执行失败:primavista android已重新加载:buildNative'>execCommand==null!*尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。构建失败这可能意味着
NDK\u构建已设置。通过在if语句中添加一些
println
s,可以很容易地验证这一点。也许您遇到了其他问题。这并不能解释为什么您首先检查
DK_HOME
,而不是
NDK_HOME
。因为我知道DK_HOME在我的环境中不存在,所以这只是一个测试。它没有停止。对不起,我不知道是什么问题。请改进您的问题:primavista android重新加载:buildNative失败:生成失败,出现异常。*错误:任务执行失败:primavista android已重新加载:buildNative'>execCommand==null!*尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。构建失败这可能意味着
NDK\u构建已设置。通过在if语句中添加一些
println
s,可以很容易地验证这一点。也许你遇到了其他问题。
task buildNative(type: Exec) {
    if (System.getenv('NDK_HOME') != null) {
        def ndkBuild = new File(System.getenv('NDK_HOME'), 'ndk-build')
        workingDir "jni"
        executable ndkBuild
    } else {
        throw new GradleException('Reason: NDK_HOME not set...')
    }
}