我有一个Android项目并试图启动模拟器。它在本地工作正常,但不在构建服务器上,所以我试图找出原因,但我无法看到任何错误输出(甚至在本地)。
task startEmulator << {
def process = "emulator -avd nexus4 -no-boot-anim -no-window".execute()
//...consumption code here
}
这是我尝试读取错误输出的内容:
process.waitFor()
print process.err.text
和
process.waitForProcessOutput(System.out, System.err)
和
process.consumeProcessOutput(System.out, System.err)
和
process.consumeProcessErrorStream(System.err)
错误代码被正确设置为1或0,具体取决于运行是否成功。这不是代码退出太快的问题。例如,当我尝试使用不存在的AVD名称的代码时,错误流为空。
我错过了什么?
PS:不能使用exec任务,因为我需要在后台执行异步/执行调用。
答案 0 :(得分:1)
确保tomcat用户(如果您使用的是tomcat)具有运行命令模拟器的权限。如果tomcat用户没有权限,则无法运行该命令。
答案 1 :(得分:0)
我的解决方法是使用字符串缓冲区。
def bout = new StringBuffer()
// Not sure if a common buffer is always a good idea.
"ls".execute().waitForProcessOutput(bout, bout)
println bout.toString()