一年ぶりくらいにScalaでAndroid開発をしてみることにした。
sbtのバージョンとかも上がってるのでプロジェクト生成の仕方なんかも大分変わってるのでそのへんを書こうかと。
開発環境は
CentOS 6.2 64bit
jdk 1.6.0.30
scala 2.9.0.1
sbt 0.11.2
■Android SDKインストール
ここ
http://developer.android.com/sdk/index.html
からアーカイブ持ってきて好きな場所に解凍。
(例:/usr/local/src/android-sdk-linux)
パスを通す
vi /etc/profile
末尾に以下追加
export ANDROID_SDK_HOME=/usr/local/src/android-sdk-linux
export PATH=$PATH:$ANDROID_SDK_HOME/tools
設定反映
source /etc/profile
■SDKアップデート
GUIが立ち上がる。
android
自分に必要なパッケージだけチェックを入れてダウンロード。
(全部ダウンロードするには時間がかかる)
Toolsと自分の開発ターゲットバージョンだけ選べばOK。
virtual deviceの設定もしておく
ここでは
名前はavd1
targetは1.6(API ver4)
■テンプレートからプロジェクト生成
giter8がインストールされてることが必要
g8 jberkel/android-app
■sbt-android-pluginの設定
sbt-android-pluginはmavenリポジトリがないので、
ローカルにリポジトリを自分で作ってあげる必要がある。
※ローカルにリポジトリ作らなくてもいける方法を@xuwei_k様から教えていただきました。
git clone git://github.com/jberkel/android-plugin.git
cd android-plugin
sbt publish-local
コメント欄読んでください。
■コンパイル&実行
プロジェクトのディレクトリに戻ってsbt実行。
sbt compile
sbt android:package-debug
sbt android:emulator-start avd1
sbt android:install-emulator
これでホーム画面にアプリが追加されるので、
実行してHello, Worldが表示されたら成功
■ハマりどころ
・jdk 1.7だとProguardでコケる
・sbt 0.11.1以前だとsbt-android pluginが動かない
・Main Activityのパッケージが1階層だと実行エラー
hoge.piyoみたいに2階層以上にしましょう(って1年前にもこれひっかかったような)
・OSが64ビットだと.apkファイルが出来ない
で32ビット用ライブラリを入れて解決
yum install xulrunner.i686