2015-05-20 9 views
10

Quando eseguoerrore lanciando Android x86 Emulator nei Travis CI

android connectedCheck 

con un emulatore ARM a Travis, l'accumulo si conclude di solito su un errore di timeout. Quindi, invece, sto cercando di eseguire la mia build e testare con l'emulatore x86. Ma quando ho eseguito il comando:

emulator -avd test -no-skin -no-audio -no-window & 

ottengo questo errore:

emulator: ERROR: x86 emulation currently requires hardware acceleration! 
Please ensure KVM is properly installed and usable. 
CPU acceleration status: KVM is not installed on this machine (/dev/kvm is missing). 

Ho notato nella documentazione Travis CI che ci sembra essere il supporto per gli emulatori x86, quindi sono asmatizzando che è possibile. Ma non sono riuscito a trovare alcun riferimento per farli funzionare correttamente con l'accelerazione hardware. Ho anche provato a eseguire questo comando:

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils 

prima di creare l'emulatore ma ho ancora lo stesso errore.

Ecco il mio script .travis.yml:

language: android 
jdk: oraclejdk7 

env: 
    global: 
    - ANDROID_BUILD_API_LEVEL=22 
    - ANDROID_BUILD_TOOLS_VERSION=22.0.1 
    - ANDROID_ABI=default/x86 
    - ANDROID_EMULATOR_API_LEVEL=19 

android: 
    components: 
    #- platform-tools 
    #- tools 
    - build-tools-$ANDROID_BUILD_TOOLS_VERSION 
    - android-$ANDROID_BUILD_API_LEVEL 
    - android-$ANDROID_EMULATOR_API_LEVEL 

    - addon-google_apis_x86-google-$ANDROID_EMULATOR_API_LEVEL 

    - extra-google-google_play_services 
    - extra-android-support 
    - extra-google-m2repository 
    - extra-android-m2repository 

    - sys-img-x86-android-$ANDROID_EMULATOR_API_LEVEL 

notifications: 
    email: true 

before_script: 
    - sudo apt-get update -qq 
    - sudo apt-get install -qq libstdc++6:i386 lib32z1 expect 
    # for gradle output style 
    - export TERM=dumb 

    # environment info 
    - ./gradlew -v 
    - uname -a 

    # emulator 
    - echo no | android create avd --force -n test -t "Google Inc.:Google APIs (x86 System Image):"$ANDROID_EMULATOR_API_LEVEL --abi $ANDROID_ABI 
    - emulator -avd test -no-skin -no-audio -no-window & 
    - android-wait-for-emulator 
    - adb shell input keyevent 82 & 

# build 
script: 
    - ./gradlew clean connectedCheck -PdisablePreDex 

Qualcuno ha preso questo lavoro prima?

+0

Perché il livello 19 e non il 22? –

+0

Ho lo stesso errore/domanda ... Che fa davvero schifo ... – z3ntu

risposta

6

Gli emulatori Intel non possono ancora essere eseguiti su Travis. Poiché Travis esegue macchine virtuali, l'accelerazione hardware nella macchina virtuale in un'altra macchina virtuale è una cosa difficile.

Per ora è necessario eseguire gli emulatori ARM.

Possono farlo in un prossimo futuro. Iscriviti a questo problema per essere avvisati. https://github.com/travis-ci/travis-ci/issues/1419

+1

grazie per aver fornito il link di rilascio. – jmsalcido