Hatena::ブログ(Diary)

なんじゃくにっき RSSフィード

2012-01-15

ScalaでAndroid開発 sbt 0.11.2版

一年ぶりくらいにScalaAndroid開発をしてみることにした。
 
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アップデート

android

GUIが立ち上がる。
自分に必要なパッケージだけチェックを入れてダウンロード
(全部ダウンロードするには時間がかかる)
Toolsと自分の開発ターゲットバージョンだけ選べばOK。
 
virtual deviceの設定もしておく
ここでは
名前はavd1
targetは1.6(API ver4)
 
テンプレートからプロジェクト生成
giter8がインストールされてることが必要

g8 jberkel/android-app

 
■sbt-android-pluginの設定
sbt-android-pluginはmavenリポジトリがないので、
ローカルにリポジトリを自分で作ってあげる必要がある。

git clone git://github.com/jberkel/android-plugin.git
cd android-plugin
sbt publish-local

※ローカルにリポジトリ作らなくてもいける方法を@xuwei_k様から教えていただきました。
 コメント欄読んでください。
 
コンパイル&実行
プロジェクトのディレクトリに戻って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ファイルが出来ない

yum install xulrunner.i686

で32ビット用ライブラリを入れて解決

xuweixuwei 2012/01/15 01:52 ローカルにpublishしなくても 0.6.1-SNAPSHOT だけ、 scala-tools のリポジトリに置いてありますよ。

http://scala-tools.org/repo-snapshots/org/scala-tools/sbt/sbt-android-plugin_2.9.1_0.11.2/0.6.1-SNAPSHOT/

デフォルトだと scala tools の snapshot のほうは見に行かないので、 plugins.sbt にこんな感じで resolvers 加えればできます

https://github.com/xuwei-k/android.g8/blob/fce1aefab7e351e7d7ae2fc5623d85fce4528106/src/main/g8/project/plugins.sbt#L1

まぁどっちの方法がいいのか微妙ですが

nanjakkunnanjakkun 2012/01/15 02:03 おお!情報ありがとうございます!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/nanjakkun/20120115/1326556098
Connection: close