2012年6月12日火曜日

JennkinsOnWindowsでAndroid #Jenkins









昨日に引き続きJenkinsの設定。Linuxの時と違う部分が割りとあって、案外キツイ。

まず、そもそもエミュレーターが起動しない。コレに関しては未だに原因不明。コンソールの出力を見るに


$ "F:\Program Files\Android\android-sdk/platform-tools/adb.exe" start-server
$ "F:\Program Files\Android\android-sdk/tools/emulator.exe" -snapshot-list -no-window -avd hudson_ja-JP_240_WVGA_android-10
[android] Starting Android emulator and creating initial snapshot
[android] Erasing existing emulator data...
$ "F:\Program Files\Android\android-sdk/tools/emulator.exe" -no-boot-anim -ports 57373,57374 -prop persist.sys.language=ja -prop persist.sys.country=JP -avd hudson_ja-JP_240_WVGA_android-10 -no-snapshot-load -no-snapshot-save -wipe-data -no-window
WARNING: Data partition already in use. Changes will not persist!
WARNING: SD Card image already in use: C:\Users\numanuma08\.android\avd\hudson_ja-JP_240_WVGA_android-10.avd/sdcard.img
ko:Snapshot storage already in use: C:\Users\numanuma08\.android\avd\hudson_ja-JP_240_WVGA_android-10.avd/snapshots.img
* daemon not running. starting it now on port 57206 *
* daemon started successfully

どうも、"emulator.exe"が二回呼び出されてエミュレーターが起動していなような?

とりあえず、エミュレーターの起動は置いておいて、apkファイルを吐き出すため、デバッグビルドとテストのビルドの設定を先に。


antの設定


どうやら、antの自動インストールはうまく起動しないみたい。公式サイト(http://ant.apache.org/) からant.1.8.3をダウンロードして、適当なフォルダに解凍。
Jenkinsの管理→システム設定→ant から、ANT_HOMEを設定。

バージョンがちょっと古いのは、開発機のantのバージョンに合わせているため。まあ、開発機のバージョン上げてもいいんだけども・・・。


JAVA_HOMEの設定


Windowsの環境変数%JAVA_HOME%を読みこんでくれるものと思っていたけど、どうやらそうでもないみたい。Linuxでは勝手に読み込んでくれたんだけどなぁ?

antと同じく
Jenkinsの管理→システム設定→JDK からJAVA_HOMEを設定

環境変数に注意


さて、各プロジェクトの設定に移るわけだけど、androidプロジェクトなので

android update project -p %WORKSPACE%\ProjectPath


の様に環境変数を使って、プロジェクトのパスを指定する必要がある。ただ、この時の環境変数けど

 バッチファイル:%WORKSPACE%

Jenkinsの設定:$WORKSPACE

と、Jenkinsの方はLinux,ライクな設定方法になっていた。だが、フォルダの区切り文字は\(バックスラッシュ)なので

ant でビルド の項目で、build.xml のパスを

$WORKSPACE\ProjectPath\build.xml

とする必要がある。面倒くさい...

Windowsバッチファイルのあれこれ


AndroidプロジェクトとAndroidTestプロジェクトを同じバッチファイル内でUpdateしようとするとなぜか失敗する。



これは落ちる


  • AndroidプロジェクトのUdate
  • 何か処理
  • AndroidTestプロジェクトのUpdate

としないと通らなかった。
これは通る



とは言え、まだまだ問題は残っていて、そもそもテストの実行ができないとかもう色々と・・・。

エミュレーターの実行ができない件に関しては、原因が分からない・・・。

環境完成の先は長いです・・・。

2 件のコメント:

  1. 「android update...」を「call android update...」にしてもAndroidプロジェクトとAndroidTestプロジェクト同時にできないですか?

    返信削除
  2. なるほど、確かにWindowsですから call が使えますね

    ですが、悲しいかなもうJenkinsOnWindowsはやめてしまったのです・・・

    そのうち、WindowsPhoneのプロジェクトをJenkinsでビルドすることがあるかもしれないですが

    返信削除