我有这个:
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/