WebRTCのAndroidサンプルアプリであるAppRTCDemoのビルド方法を別のところに書いていたのだけど、最近折角ブログを更新したので、ブログのネタにすべくブログに書く。
ちなみに私はvagrant環境でこの手の作業をやるようにしている。使っているのはubuntu公式にある
Ubuntu Server 14.04 LTSのvagrantbox
https://cloud-images.ubuntu.com/vagrant/trusty/trusty-server-cloudimg-amd64-juju-vagrant-disk1.box
initが終わって最初のupをしたら、すぐにhaltをしてアプリケーションメニューからOracle VM VirtualBoxを起動し作成されているVMの設定でメモリを2G以上にしておく。コア数も盛っておくとなお良い。常用はしないので、限界まで割り振るのも手。
割り振ったらsshでアクセスして以降はubuntuでの作業
まず、multiverseのレポジトリを有効化する
1 2 |
sudo vi /etc/apt/sources.list |
下記の行をコメントアウト解除
1 2 3 4 5 |
deb http://archive.ubuntu.com/ubuntu trusty multiverse deb-src http://archive.ubuntu.com/ubuntu trusty multiverse deb http://archive.ubuntu.com/ubuntu trusty-updates multiverse deb-src http://archive.ubuntu.com/ubuntu trusty-updates multiverse |
そして流す
1 2 3 4 5 6 7 8 9 |
sudo apt-get update sudo apt-get upgrade sudo apt-get install git subversion openjdk-7-jdk export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=`pwd`/depot_tools:"$PATH" export GYP_DEFINES="OS=android" fetch webrtc_android |
もしかすると一発で行くけど、失敗したらレポジトリを有効化を再確認して下記を流す。
1 2 3 4 |
cd src sudo ./build/install-build-deps.sh gclient sync |
Android SDK入れろと怒られたが、、、要るのか?
1 2 |
build/install-android-sdks.sh |
お、全部通った。また手順すこし変わってる感じ?
そしてAppRTCDemoをビルドしてみる。これはデバッグビルドなので遅い。
1 2 3 4 5 |
. build/android/envsetup.sh export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_java=1 $GYP_DEFINES" gclient runhooks ninja -C out/Debug AppRTCDemo |
ちなみにビルド時のPATH設定だけまとめると、こんな感じ。
ユーザー名は、この設定の場合vagrant
1 2 3 4 |
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 export PATH=/home/vagrant/depot_tools:"$PATH" export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_java=1 OS=android" |
最新版を再取得する場合はこれをつかう(必ずPATHの設定を先にやる)
1 2 3 4 |
git fetch git merge origin/master gclient sync |
ビルドはこれ。こちらはリリースビルドでデバッグとは動作速度が違う(必ずPATHの設定を先にやる)
1 2 |
ninja -C out/Release AppRTCDemo |
原則的に上記のPATH設定→最新版取得→ビルドの手順で通らなくなることはない。
ただコミット頻度が高いタイミングでcheckoutしてくるとビルドできないのが取得されることもあるので注意
日本時間だと銀行がやっている時間がオススメ。
質問はwebrtc-jpのslackでもいいし、コメントに書いてくれても良いです。
http://webrtc-jp-slackin.herokuapp.com/
一緒にNative WebRTCでつらい思いを共有しましょう!