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

标签 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 {
            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 assembleRelease运行,则会得到:
* What went wrong:
Execution failed for task ':primavista-android-reloaded:buildNative'.
> execCommand == null!

我想要:
Reason: NDK_HOME not set...

并且即使我具有正确的NDK_HOME,它也无法在Android Studio中运行。与错误:
Execution failed for task ':primavista-android-reloaded:buildNative'.
> execCommand == null!

最佳答案

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...')
    }
}

关于groovy - 捕获IllegalStateException并停止我的Gradle/Groovy构建并打印一条消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20703116/

相关文章:

groovy - 你能打破 Groovy "each"闭包吗?

android - 错误:程序类型已存在:com.google.protobuf.DescriptorProtos $ EnumDescriptorProto $ Builder

java - 将库 (Smack) 添加到 Android Studio 项目

java - onClick 在 android studio 中不工作

Android Studio 翻译编辑器显示缺失的翻译(但事实并非如此!)

eclipse - 嵌入 groovy : CompilerConfiguration. setScriptBaseClass 不起作用

Java用持久化存储实现锁定机制

grails - Grails Executor 插件出错,未找到 bean "persistenceInterceptor"

gradle - Jenkins Gradle使用 Artifactory 插件使用包装器构建

eclipse - Coudnot 安装 Gradle 发行版 - eclipse- Liferay