突然ですが WordPress の Android スマートフォン投稿アプリ「WordPress for Android」のビルドの仕方です。
事の発端は、スマートフォンを Galaxy SII から S4 に変えたこと…。なんと S4 は写真の画素を VGA に落とせず、サーバのメモリ不足にて WordPress の写真ブログに投稿できないという衝撃の事実。(←時代についていっていないひろましゃくん…
まぁ、ついでに好きなように WordPress for Android のソースコードを修正できたら面白いのではないかと始めたのでした。
どうやら次世代 WordPress には、JSON ベースの REST API も付きそうな雰囲気ですので、こういった WordPress が備える Web 管理画面外からの投稿アプリの研究をしておくのも良いかもしれませんね。 🙂
てなわけで、自分でも忘れそうなのでビルド方法を記しておきます。
Android SDK や ADT はインストール済みとします。 画面は Ubuntu の 英語版 Eclipse より。 他の環境の方は適宜読み替えください。
依存ライブラリのセットアップ
WordPress for Android をビルドするには 、ActionBarSherlock と android-menudrawer ライブラリが必要です。 何気に pom.xml とかがないので dependency がよく分からないのですが、、とりあえずそれぞれの master ブランチを使っています。
両ライブラリともに github で公開されていますのでクローンします。
Eclipse に EGit が入っていると思いますので、Git Repository ビューより。
2つのライブラリがクローンできたら双方とも Eclipse のワークスペースに持ってきます。
File -> New -> Other -> Android Existing Code
Next ボタン押下後にパスの指定がでますので、さきほどクローンした 2ライブラリを追加します。
ActionBarSherlock はリポジトリに複数のプロジェクトが含まれていますが、「actionbarsherlock」ディレクトリを指定します。通常は次のパスになるでしょう。
~/git/ActionBarSherlock/actionbarsherlock ~/git/git/android-menudrawer
ワークスペースにプロジェクトが持ってこれたら、それぞれに API レベルとライブラリ利用の指定をします。
プロジェクト名右クリック -> Properties -> Android
android-menudrawer のマスターブランチは、Jerry Beans でないとコンパイルが通らないようだったので、双方とも 4.2.2 (API 17) に設定しました。 また、Library の「Is Library」のチェックを忘れずにつけます。
以上で依存関係の操作は終わりです。
WordPress for Android コアのビルド
WordPress for Android は SVN でソースが公開されていますので、いつも通り Eclipse の SVN ビューからチェックアウトし、ワークスペースにのせます。
次に先ほど入れた依存ライブラリのパスを設定していきます。
wp-android プロジェクト右クリック -> Properties -> Android
チェックアウト後は、Library がパス切れ(バッテン)していると思いますので、一度 Remove して先ほどワークスペースに追加したふたつのライブラリを Add し直します。
次にデプロイ時に含むライブラリを選択します。
wp-android プロジェクト右クリック -> Properties -> Other and Export
SDK(Android 4.2.2) と Android Private Libraries と Android Dependencies にチェックがついていることを確認してください。(指定できていないと ClassNotFound Exception します)
ここでいよいよ、ライブラリも含めてビルド(クリーン)します。
Project -> Clean
3つのプロジェクトを選択して OK を押します。
ビルド通りましたか? 😀
ビルドパスにライブラリの jar が追加されていることを確認します。
wp-android プロジェクト右クリック -> Properties -> Java Build Path
では、アプリを実行してみます。
wp-android 右クリック -> Run as -> Android Application
おめでとうございます。 WordPress for Android はあなたの手の中に 😀
動かない場合は、おそらく依存関係の欠如だと思いますので Marker ビューで追っていけばなんとかなると思います。
ビルドができれば、あとは知恵と勇気でなんとかなるですね。これくらいの大きさの実装だと Android アプリ作成の勉強にもちょうど良いです。
これよりソースをいじってみたいと思います。 🙂