Android gradle执行进程错误流

Android gradle执行进程错误流,android,groovy,android-emulator,gradle,Android,Groovy,Android Emulator,Gradle,我有一个android项目,正在尝试启动模拟器。它在本地运行良好,但在构建服务器上运行不好,因此我试图找出原因,但我无法看到任何错误输出(即使在本地) 及 及 及 根据运行是否成功,将错误代码正确设置为1或0。这不是代码过早退出的问题。例如,当我尝试使用不存在的AVD名称的代码时,错误流为空 我错过了什么 PS:无法使用exec任务,因为我需要此execute调用在后台异步执行 确保tomcat用户(如果您使用的是tomcat)具有运行命令模拟器的权限。如果tomcat用户没有权限,您将无法运行

我有一个android项目,正在尝试启动模拟器。它在本地运行良好,但在构建服务器上运行不好,因此我试图找出原因,但我无法看到任何错误输出(即使在本地)

根据运行是否成功,将错误代码正确设置为1或0。这不是代码过早退出的问题。例如,当我尝试使用不存在的AVD名称的代码时,错误流为空

我错过了什么


PS:无法使用exec任务,因为我需要此execute调用在后台异步执行

确保tomcat用户(如果您使用的是tomcat)具有运行命令模拟器的权限。如果tomcat用户没有权限,您将无法运行该命令。

我的解决方法是使用字符串缓冲区

def bout = new StringBuffer()
// Not sure if a common buffer is always a good idea.
"ls".execute().waitForProcessOutput(bout, bout)
println bout.toString()

我更新了问题,我在错误流中看不到任何东西,即使是在本地。另外,我不是在寻找关于如何修复emulator问题的建议,而是试图理解为什么我不能在gradle中读取错误流(注意问题的标题)。问题是否特定于
emulator
命令?你能试试更简单的吗,比如
ls
process.waitFor()
print process.err.text
process.waitForProcessOutput(System.out, System.err)
process.consumeProcessOutput(System.out, System.err)
process.consumeProcessErrorStream(System.err)
def bout = new StringBuffer()
// Not sure if a common buffer is always a good idea.
"ls".execute().waitForProcessOutput(bout, bout)
println bout.toString()