-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
Ubuntu 12.04 x64, tomcat 7, java 7 x64
When running a build from Jenkins, with a x86_64 ABI of android-21, it fails to start with the following error:
[android] Starting Android emulator and creating initial snapshot
[android] Erasing existing emulator data...
$ /opt/android-sdk/tools/emulator -no-boot-anim -ports 5799,5800 -prop persist.sys.language=en -prop persist.sys.country=US -avd hudson_en-US_320_WVGA_android-21_x86-64 -no-snapshot-load -no-snapshot-save -wipe-data -no-window
ERROR: 32-bit Linux Android emulator binaries are DEPRECATED, to use them
you will have to do at least one of the following:
- Use the '-force-32bit' option when invoking 'emulator'.
- Set ANDROID_EMULATOR_FORCE_32BIT to 'true' in your environment.
Either one will allow you to use the 32-bit binaries, but please be
aware that these will disappear in a future Android SDK release.
Consider moving to a 64-bit Linux system before that happens.[android] Emulator did not appear to start; giving up
[android] Stopping Android emulator
Which is completely bogus, since:
- it's a 64 bit box:
$ uname -m
x86_64 - using 64-bit Java:
$ java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)
And running the same command from cli works just fine
HOME=. /opt/android-sdk/tools/emulator -no-boot-anim -ports 5799,5800 -prop persist.sys.language=en -prop persist.sys.country=US -avd hudson_en-US_320_WVGA_android-21_x86-64 -no-snapshot-load -no-snapshot-save -wipe-data -no-window
Creating filesystem with parameters:
Size: 69206016
Block size: 4096
Blocks per group: 32768
Inodes per group: 4224
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 16896
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/4224 inodes and 1302/16896 blocks
Failed to Initialize backend EGL display
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
emulator: warning: opening audio output failed
Hmm. I couldn't reproduce this with the newest SDK tools on my Ubuntu 14.04 x86_64 machine (nor in a Docker image with Ubuntu 12.04), but it's strange that you get a different result on the command line.
In the command line version, are you running as the same user that Jenkins is running under?
Does the same happen if you run a Jenkins job, where you manually run the emulator command via a "Execute shell script" build step?
Is there anything weird in the build's environment, e.g. env variables injected globally in Jenkins (or on that particular build slave)? Probably you can see this by running env in an execute shell build step.