環境
- CentOS 7.1
- Oracle JDK 8u65
- Android SDK
- Gradle
- BitBucket
概要
Jenkins自体がAndroidのビルド環境を提供してくれるわけではありません。
今回は、Jenkinsが動いているサーバー内にAndroidのビルドができる環境を構築し、
- CentOS上に、Androidのビルド環境を構築
- JDKのインストール
- Android SDKのインストール
- SDKマネージャによるアップデート
- BitBucketからプロジェクトのクローン
- Gradleによるビルド
次回、Jenkinsの設定を行い、ビルドを実行してみたいと思います。
CentOS上に、Androidのビルド環境を構築
JDKのインストール
- JDKのダウンロード&インストール
wget http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.rpm
yum localinstall jdk-8u65-linux-x64.rpm
- Oracle JDKを利用するように設定
vi /etc/profile.d/java.sh
#!/bin/bash
JAVA_HOME=/usr/java/jdk1.8.0_65
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME
export CLASSPATH=.
- 実行権限の付与
chmod +x /etc/profile.d/java.sh
- 確認(あとでJenkinsの設定で利用します)
echo $JAVA_HOME
/usr/java/jdk1.8.0_65
Android SDKのインストール
- Android SDK
- Android SDKを配置したディレクトリは、あとでJenkinsの設定で利用します
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgzwget
tar xvf android-sdk_r24.4.1-linux.tgz
mv android-sdk-linux/ /var/lib/jenkins/ # Jenkinsが参照できるディレクトリに配置
chown -R jenkins:jenkins android-sdk-linux/
- SDK Managerによるアップデート
- すべてのプラットフォームがインストールされるので、時間がかかります。
- JUnitで複数バージョンのテストをする予定なので、全部インストールしましたが、ターゲットが決まっているなら、選択した方が良いかもしれません。
tools/android update sdk --no-ui
BitBucketからプロジェクトのクローン
- 予め、ローカル環境でビルド可能なプロジェクトをコミットしておきます。
- 必要なのは、プロジェクトなので、CVSは、GitHubでも、Subversionでも構いません。
git clone https://bitbucket.org/{ユーザー名}/com.sample.test01.android.git
Gradleによるビルド
とりあえず、gradleコマンドを叩いてビルドできるか確認
- 『BUILD SUCCESSFUL』と表示されれば成功です
ANDROID_HOME=/var/lib/jenkins/android-sdk-linux ./gradlew build --stacktrace
エラーが表示される場合
- 『ava.io.IOException: Cannot run program "〜/build-tools/23.0.2/aapt": error=2, そのようなファイルやディレクトリはありません』
- そのようなファイルがある場合でも、エラーが表示されます……。
- 『aapt』が64bit対応していないので、それ用のライブラリが必要なんだそうな。
yum install -y ld-linux.so.2
yum install -y libz.so.1
yum install -y libgcc_s.so.1
どうでもよいことだけど、
El Captanにアップデートしてから、ことえりの変換がおかしくて、”Jenkins”と入力すると、時々、"Jankins"になっていることがある……。
一文字違うだけで、執事から危ない奴になった。