Запуск эмулятора Android с опцией-noaudio возвращает " qemu-system-i386.exe: - audio: недопустимый вариант"
- Я запускаю Windows 10, 64 бит, Android Studio 2.2.2. При создании AVD из менеджера AVD Android SDK я не вижу возможности полностью отключить аудио (вход и выход). Я использую Android SDK, который имеет verion Android Tools 25.2.2). В старом менеджере AVD я помню, что опция полного отключения звука на AVD присутствовала.
- когда я хочу создать пакетный скрипт, для запуска с
-noaudio
опция, как указано в официальном Google контроль эмулятор из командной строки страница, я запускаю команду какemulator.exe -avd Nexus_4 -noaudio
, но он выдает ошибку
qemu-system-i386.exe: -audio: invalid option
- открывается диалоговое окно эмулятора Android с неопределенным индикатором выполнения, и AVD не запускается вообще. Постоянно загружается.
любая помощь приветствуется.
2 ответов
я протестировал это на Linux. (Для комментариев проверки windows или ответа @Tekk)
Если вы не хотите аудио просто использовать:
export QEMU_AUDIO_DRV=none && emulator -avd Nexus_4
TL; DR
основываясь на некоторых раскопках, похоже, что QEMU2 удалил возможность полностью отключить звук - вы можете указать, через какую звуковую карту проходит звук, но не можете отключить его полностью. Флаг" - audio "был заменен на "- soundhw", что позволяет нам укажите, какую звуковую карту использовать.
QEMU1 (используя флаг командной строки эмулятора "-engine classic") работает, когда передается "-noaudio"), но передача "-soundhw none" в QEMU2 также не выполняется.
устранение:
сообщение об эмулированных аудиоустройствах
в linux, если я хочу звук, я использую:
export QEMU_AUDIO_DRV=pa && emulator.orig -avd Nexus_S_api_23
он работает нормально. Также у меня нет 100% использования процессора
#!/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/emulator
to Android-sdk/tools/emulator.orig
Затем создайте скрипт с вышеуказанным источником в Android-sdk/tools/emulator
(разрешение на исполнение).
помните, иногда, когда Android sdk будет обновляться, он удалит этот скрипт;)
благодаря ответу @Dawid Drozd я создал пакетный скрипт Windows, который будет запускать AVD без звукового ввода/вывода. Просто дайте скрипту параметр AVD name.
фокус в том, чтобы запустить set QEMU_AUDIO_DRV=none
перед выполнением AVD.
@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