MemoE
MemoE

Reputation: 21

android emulator can not open audio output

I am working on an Ubuntu 12.04 machine. I have built android from source code (gingerbread release 2.3.6), and trying the emulator. But it fails to open audio output.

Results of audio debug are below:

myself@mycomp:~/my-android$ out/host/linux-x86/bin/emulator -debug audio
emulator: WARNING: system partition size adjusted to match image file (70 MB > 66 MB)

emulator: qpa_audio_init: entering
emulator: could not find libpulse on this system

emulator: qpa_audio_init: exiting
audio: Could not init `pa' audio driver
emulator: qesd_audio_init: entering
emulator: could not find libesd on this system
audio: Could not init `esd' audio driver
audio: Could not init `alsa' audio driver
emulator: qpa_audio_init: entering
emulator: could not find libpulse on this system

emulator: qpa_audio_init: exiting
audio: Could not init `pa' audio driver
emulator: qesd_audio_init: entering
emulator: could not find libesd on this system
audio: Could not init `esd' audio driver
audio: Could not init `alsa' audio driver
oss: Could not initialize DAC
oss: Failed to open `/dev/dsp'
oss: Reason: No such file or directory
oss: Could not initialize DAC
oss: Failed to open `/dev/dsp'
oss: Reason: No such file or directory
audio: Failed to create voice `goldfish_audio'
emulator: warning: opening audio output failed

I see that pulseaudio is running:

myself@mycomp:~/my-android$ ps aux | grep pulse
myself       2015  0.0  0.0 415940  5972 ?        S<l  09:26   0:00 /usr/bin/pulseaudio --start --log-target=syslog
myself       7402  0.0  0.0   9380   932 pts/5    S+   11:44   0:00 grep --color=auto pulse

also I have some libpulse libraries under /usr/lib/ :

myself@mycomp:/usr/lib$ find . -name "libpulse*"
./x86_64-linux-gnu/libpulse-simple.so.0.0.3
./x86_64-linux-gnu/libpulse-mainloop-glib.so.0.0.4
./x86_64-linux-gnu/libpulsecommon-1.1.so
./x86_64-linux-gnu/libpulse.so.0.13.5
./x86_64-linux-gnu/libpulse.so.0
./x86_64-linux-gnu/libpulse-mainloop-glib.so.0
./x86_64-linux-gnu/libpulse-simple.so.0
./x86_64-linux-gnu/libpulsedsp.so
./jvm/java-6-openjdk-amd64/jre/lib/amd64/libpulse-java.so
./libpulsecore-1.1.so

I have searched the net for solutions to the problem, but I could not find anyone working for me.

Thanks in advance,

Upvotes: 2

Views: 6547

Answers (4)

Frikkie Thirion
Frikkie Thirion

Reputation: 31

The x86 (32bit) version of the libraries are available when you install the package 'libpulse0:i386':
  sudo apt-get install libpulse0:i386
This will privide the libraries: /usr/lib/i386-linux-gnu/libpulse-simple.so
The emulator should now be able to run with the audio output detected.

Alternatively, you can launch the emulator with the option '-no-audio' to disable the audio subsystem completely.

Upvotes: 1

Zliang
Zliang

Reputation: 9

I have the same issue on Fedora 17 64 bit, the issue was the corresponding 32 bit lib is missing, and android only need the 32 bit version lib. it was fixed by :

#sudo yum install libpulse.so.0

as you are in Ubuntu, you might need to run

#sudo apt-get install libulse.so.0

Upvotes: 0

Chris Stratton
Chris Stratton

Reputation: 40357

If you are building the emulator yourself, you probably need to have the libpulse-dev package installed on your build system. It looks like you probably don't have that installed, as your library list doesn't include some versionless symlinks included in the -dev package.

You could either try

sudo apt-get install libpulse-dev

and reconfigure and rebuild and try again, or maybe first as a test install a prebuilt sdk and see if audio works in its emulator on your system.

Upvotes: 0

Yury
Yury

Reputation: 20936

I guess that you cannot build gingerbread on Ubuntu 12.04. Here you can find the following note:

Building on Ubuntu 12.04 is currently only experimentally supported and is not guaranteed to work on branches other than master.

I've tried to build it but there were several problems in my case so I preferred to switch to Ubuntu 10.04

Upvotes: 0

Related Questions