Запуск эмулятора Android с опцией-noaudio возвращает " qemu-system-i386.exe: - audio: недопустимый вариант"

  1. Я запускаю Windows 10, 64 бит, Android Studio 2.2.2. При создании AVD из менеджера AVD Android SDK я не вижу возможности полностью отключить аудио (вход и выход). Я использую Android SDK, который имеет verion Android Tools 25.2.2). В старом менеджере AVD я помню, что опция полного отключения звука на AVD присутствовала.
  2. когда я хочу создать пакетный скрипт, для запуска с -noaudio опция, как указано в официальном Google контроль эмулятор из командной строки страница, я запускаю команду как emulator.exe -avd Nexus_4 -noaudio, но он выдает ошибку

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

  1. открывается диалоговое окно эмулятора 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