尝试运行Gradle Build时获取DisconnectableInputStream源阅读器

时间:2018-06-05 17:46:36

标签: gradle nohup

我有一个运行gradle build的脚本......

$HOME_DIR$CODE_DIR/gradlew -p $HOME_DIR$CODE_DIR build

当我像./start.local.sh那样定期运行时,它运行正常。但是当我尝试使用像nohup ./start.local.sh &这样的nohup时,我得到了......

Exception in thread "DisconnectableInputStream source reader" org.gradle.api.UncheckedIOException: java.io.IOException: Bad file descriptor
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:57)
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:40)
    at org.gradle.util.DisconnectableInputStream$1.run(DisconnectableInputStream.java:125)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.io.IOException: Bad file descriptor

我错过了什么?

2 个答案:

答案 0 :(得分:1)

尝试定义输入流描述符,这种魔术对我有效:

nohup ./start.local.sh > build.log 2>&1 < /dev/null &

这是https://issues.gradle.org/browse/GRADLE-3535中描述的已知Gradle错误。 输入(stdin)和输出流(stdout和stderr)的Gradle期望值。使用nohup命令时,没有stdin和stdout / err,如果应用程序有严格要求,则应定义它们:

 2>&1 - redirect for stderr to stdout, 
 > build.log - redirect stdout to log file, 
 < /dev/null - use /dev/null as input stream

答案 1 :(得分:0)

就本机项目的反应而言,我只清理 android 项目并重新构建。

cd android && ./gradlew clean

重新运行

cd .. && react-native run-android