为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 go 启动我的 android 模拟器?

如何使用 go 启动我的 android 模拟器?

Go
梵蒂冈之花 2022-06-27 16:06:30
我正在尝试编写我的第一个 go 程序来启动一个 android 模拟器而不启动 Android studio 和 avd 管理器。我先写了一个bat文件c:cd C:\Users\me\AppData\Local\Android\Sdk\emulatorstart /min "Android Emulator" emulator.exe -avd Pixel_3a_API_30哪个有效,但我希望终端被隐藏而不是最小化。因此,由于我想尝试使用 GO,我尝试使用 go 运行命令package mainimport (    "log"    "os/exec")func main() {    cmd := exec.Command(`C:\Users\me\AppData\Local\Android\Sdk\emulator\emulator.exe`, "-avd Pixel_3a_API_30")    err := cmd.Run()    if err != nil {        log.Printf("%v", err)    }}这不会产生错误,但也不会启动模拟器。我究竟做错了什么?这是输出$ go run .2020/09/05 17:14:02 exit status 1
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

任何不为 0 的退出状态都是来自 shell 的错误。这不等于 golang 错误(执行的命令,但是该命令在内部引发了错误)。这通常是由于缺乏环境,例如路径等,这些路径等在由 golang 启动的 shell 中不存在以执行您的命令(这几乎适用于所有语言:当您在 shell 中启动命令时,确保它确实继承或初始化环境)。

然后,常见的解决方案是提供一个环境或确保所有调用都是绝对的(这在您的系统之外或像 docker 容器这样的专用环境中并不是真正可移植的)。


查看完整回答
反对 回复 2022-06-27
?
波斯汪

TA贡献1811条经验 获得超4个赞

答案是分裂论点。所以“-avd”和“Pixel_3a_API_30”现在是分开的


package main


import (

    "log"

    "os/exec"

)


func main() {

    cmd := exec.Command(`C:\Users\me\AppData\Local\Android\Sdk\emulator\emulator.exe`, "-avd", "Pixel_3a_API_30")

    err := cmd.Run()

    if err != nil {

        log.Printf("%v", err)

    }

}


查看完整回答
反对 回复 2022-06-27
  • 2 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信