Android 開発用の CI ビルドをセットアップしようとしています (Android SDK Tools V23.0.2)。これは現在、すべてローカルマシンで実行されています(Ubuntu 14.04.1を使用)。ただし、エミュレーターを正しく動作させるには問題があります。
Eclipse 内からエミュレーターを起動すると、正常に動作します (しかも非常に高速です)。私が抱えていた唯一の小さな問題は、エミュレーターの「Use Host GPU」オプションをオフにするまで、スクリーンショット (Robotium で撮影) が機能しないことでした。
Jenkins (V1.576) では「Android Emulator プラグイン」 (V2.11.1) を使用していますが、ここからが楽しみです。まず、エミュレーターを起動できますが、android-15 でのみ - それより上のすべてのバージョンで、エミュレーターが起動していないように見えます。第二に、エミュレーターは Eclipse 内から起動した場合よりもはるかに遅くなります。たとえば、私のテストの 1 つは Eclipse エミュレーターで 1 分、「Jenkins」エミュレーターで約 3 ~ 4 分かかります。第 3 に、「ホスト GPU を使用」オプションを使用しなくても、スクリーンショットがまったく機能しません。第 4 に、ウィンドウを使用してエミュレーターを起動できません (実際、長期的には起動したくありませんが、ビルドのセットアップ中に何が起こっているかを確認するのに便利です)。
私はあらゆる種類のプラグイン構成 (エミュレータ実行可能ファイルを明示的に記述することを含む) を試してみました (例: "emulator64-x86")。 また、Eclipse で使用される AVD 仕様を再利用しようとしましたが、どれも役に立ちませんでした。完全を期すために、作業中の Eclipse とプラグインの構成を以下に添付しましたが、実際の質問は次のとおりだと思います。
「Android Emulator プラグイン」で Eclipse が起動するのとまったく同じ方法でエミュレータを起動するにはどうすればよいですか?
それにもかかわらず、私はもちろんあらゆる種類の助けに満足しています-これは私を夢中にさせます:-)
Eclipse 内で使用する AVD 構成のスクリーンショットを次に示します。
正常に起動したエミュレーターの Jenkins 出力は次のとおりです。
[android] Using Android SDK: /home/chris/android-sdks
[android] Creating Android AVD: /var/lib/jenkins/jobs/PracticingTimer - Large Tests/workspace/.android/avd/hudson_de-DE_320_1280x768_android-15_x86.avd
[android] /home/chris/android-sdks/tools/android create avd -f -a -c 256M -s 1280x768 -n hudson_de-DE_320_1280x768_android-15_x86 -t android-15 --abi x86
[android] Setting hardware properties:
hw.ramSize: 512
vm.heapSize: 64
$ /home/chris/android-sdks/platform-tools/adb start-server
[android] Starting Android emulator
$ /home/chris/android-sdks/tools/emulator -no-boot-anim -ports 5593,5594 -prop persist.sys.language=de -prop persist.sys.country=DE -avd hudson_de-DE_320_1280x768_android-15_x86 -no-snapshot-load -no-snapshot-save -no-window
* daemon not running. starting it now on port 5595 *
* daemon started successfully *
Failed to Initialize backend EGL display
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
[android] Waiting for emulator to finish booting...
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 shell getprop dev.bootcomplete
error: device offline
error: device offline
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 shell getprop dev.bootcomplete
error: device offline
error: device offline
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 shell getprop dev.bootcomplete
$ /home/chris/android-sdks/platform-tools/adb disconnect emulator-5593
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 shell getprop dev.bootcomplete
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 logcat -v time
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
[android] Emulator is ready for use (took 48 seconds)
「Android Emulator プラグイン」設定の失敗例を次に示します (簡潔にするためのテキストとして)。
Run emulator with properties
OS: android-19
Screen density: 320
Screen resolution: 1280x768
Device locale: de_DE
SD card size: 128M
Target ABI: x86
vm.heapSize=64
hw.ramSize=512
Reset emulator at startup
Show emulator window
最後に、エミュレーターの起動に失敗した結果の Jenkins の出力を次に示します。
[android] Using Android SDK: /home/chris/android-sdks
[android] Setting hardware properties:
vm.heapSize: 64
hw.ramSize: 512
$ /home/chris/android-sdks/platform-tools/adb start-server
[android] Starting Android emulator
[android] Erasing existing emulator data...
$ /home/chris/android-sdks/tools/emulator -no-boot-anim -ports 5749,5750 -prop persist.sys.language=de -prop persist.sys.country=DE -avd hudson_de-DE_320_1280x768_android-19_x86 -no-snapshot-load -no-snapshot-save -wipe-data
SDL init failure, reason is: No available video device
* daemon not running. starting it now on port 5751 *
* daemon started successfully *
[android] Emulator did not appear to start; giving up
$ /home/chris/android-sdks/platform-tools/adb disconnect emulator-5749
[android] Stopping Android emulator
$ /home/chris/android-sdks/platform-tools/adb kill-server
Finished: NOT_BUILT