使用-noaudio选项运行Android模拟器会返回“qemu-system-i386.exe:-audio:invalid option”

  1. 我正在运行Windows 10,64位Android Studio 2.2.2。 当从Android SDK的AVDpipe理器创buildAVD时,我看不到一个完全禁用audio(input和输出)的选项。 我正在使用安卓工具25.2.2版本的Android SDK)。 在旧的AVDpipe理器中,我记得在AVD上完全禁用audio的选项存在。
  2. 当我想要创build一个批处理脚本时,要使用-noaudio选项运行,正如谷歌官方从命令行页面控制模拟器中所提到的那样,我以emulator.exe -avd Nexus_4 -noaudio运行命令,但是它会抛出错误

qemu-system-i386.exe: -audio: invalid option

  1. Android模拟器对话框打开,进度条不确定,AVD根本不启动。 永远保持加载。

任何帮助表示赞赏。

Solutions Collecting From Web of "使用-noaudio选项运行Android模拟器会返回“qemu-system-i386.exe:-audio:invalid option”"

我已经在Linux上testing过了。 (对于Windows结帐评论或@Tekk答案)
如果你不想audio简单地使用:

 export QEMU_AUDIO_DRV=none && emulator -avd Nexus_4 

TL; DR

从这里引用

基于一些挖掘,看起来像QEMU2删除了完全禁用audio的能力 – 您可以指定audio通过哪个声卡,但不能完全closures它。 “-audio”标志被replace为“-soundhw”,它让我们指定使用哪个声卡。

当“-noaudio”通过时,QEMU1(使用“引擎经典”模拟器命令行标志)工作,但是将“-soundhw none”传递给QEMU2也失败。

解:

发布模拟audio设备

在Linux上,如果我想要的声音我使用:

 export QEMU_AUDIO_DRV=pa && emulator.orig -avd Nexus_S_api_23 

它工作正常。 另外我没有100%的CPU使用率

我的片段 :

 #!/bin/bash # http://stackoverflow.com/a/35822173/1052261 # http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in SOURCE="${BASH_SOURCE[0]}" while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" SOURCE="$(readlink "$SOURCE")" [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located done DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" #echo "DIR is '$DIR'" #If you want audio pass QEMU_AUDIO_DRV=pa -> https://www.wagner.pp.ru/fossil/vws/wiki?name=QEMU+audio export QEMU_AUDIO_DRV=none && $DIR/emulator.orig -use-system-libs "$@" -qemu -m 512 -enable-kvm 

只需将Android-sdk/tools/emulatorreplace为Android-sdk/tools/emulator.orig然后在Android-sdk/tools/emulator (允许执行)中使用上面的源代码创build脚本。

记得有时候android sdk会升级它会删除这个脚本;)

感谢@Dawid Drozd的回答,我已经创build了一个Windows批处理脚本,可以在没有声音input/输出的情况下运行AVD。 给脚本一个AVD名字的参数。

诀窍是在执行AVD之前运行set QEMU_AUDIO_DRV=none

 @echo off if "%1"=="" goto usage set QEMU_AUDIO_DRV=none @echo Running AVD "%1" without sound... @echo. %ANDROID_HOME%\tools\emulator.exe -avd %1 goto :eof :usage @echo. @echo ----------------------------------- @echo Usage: %0 ^<avd-name^> @echo ----------------------------------- @echo. @timeout 3 >0 exit /B 1