Win7でScalaとScalaAndroid環境構築とか


ただの備忘ログ
構築とかわかりにくかったのでまとめただけ。転んだら泣いてください。

サイト
Scala
Index of /gnu/windows/emacs か NTemacs
Apache Ant
ProGuard
simple-build-tool
object版create_project

準備
1:
ScalaのサイトからIzPack Installerをダウンロードして指示通りインスコ。インストーラ版だとPATHも勝手に追加してくれるので楽。

2:
最新のemacsを持ってくる。
「scala/misc/scala-tool-support/emacs」のファイルを「.emacs.d/scala-mode」に置く
C:\Users\***\AppData\Roaming\.emacs.dにinit.elを作成
以下内容

;; Set default fonts and fonts for Japaense
(cond
  (window-system
    (set-default-font "Courier New-10")
    ;; Japanese(japanese-jisx0208)font
    (set-fontset-font
      (frame-parameter nil 'font)
      'japanese-jisx0208
      (font-spec :family "Meiryo" :size 12)
      ;;'("Meiryo" . "unicode-bmp")
    )
  )
)
;; Set scala-mode
(add-to-list 'load-path "~/.emacs.d/scala-mode")
(require 'scala-mode-auto)

起動はbin以下の「runemacs.exe」でおkみたい。
cuiでは「emacs -nw」みたい。
使い方とかよく分からないので追々。

3:
Apache AntからWindowsバイナリをダウンロード解凍後、適宜場所へ。 そのあと環境変数のPATHに「apache-ant/bin」がある場所を追加。
端末から「ant -version」でPATH通っているか確認。

4:
ProGuardをダウンロード解凍後適宜場所へ。そのあと環境変数に
PROGUARD_HOMEを新規追加。
PATHに「%PROGUARD_HOME%\bin」を追加
「proguard」を端末内で実行確認。

5:
端末内で「sbaz install scala-android」を実行しscala-androidをインスコ。
このままではscala自体がエラーで起動しないので。
こちらで2.8.1用にビルドした物を用意したので、自己責任でscala-android.7zをダウンロード解凍後
「scala/lib」以下に置けばおk
※いつダウンロードリンクが切れるか分かりません(笑

6:
simple-build-toolをダウンロード解凍後適宜場所へ。
「sbt-launch-*」を「sbt-launch.jar」へリネーム

@echo off
java -Xmx512M -jar "%~dp0/sbt-launch.jar" %*

そのあと環境変数のPATHにsimple-build-toolがある場所を追加。
ANDROID_SDK_HOMEという名前でandroid-sdkのある場所を追加。

端末内で「sbt」でPATHが通っているか確認。

7:
simple-build-toolと同じところにcreate_project.scalaを保存
create_project.scalaを修正
create_project.scala:13 – val e = args.elements ++ /val e = args.elements/ ++ val e = args.iterator

修正版:create_project.7z

※こっちもいつダウンロードリンクが切れるか分かりません(笑
あとScala触ったことないのでちゃんと動くかすら分かりません(汗

実際に使ってみる
1: プロジェクトの作成
任意のフォルダにsimple-build-toolディレクトリにある「create_project.scala」をコピーする。
PS> scalac create_project.scala
PS> scala -cp . CreateProject HelloProject scalatohoku.example.hello –platform android-8 –scala-version 2.8.1 –activity HelloActivity
PS> cd HelloProject
PS> sbt update package-debug

2: コンパイル(apk化) → ぶち当たった壁を参照
HelloProject下で
PS> sbt
sbt> compile
sbt> install-emulator
または
sbt> install-device
インストール出来ません

ぶち当たった壁
1:Issue 150: sbt.Process apply splits path to command having spaces
android-sdkのpathにスペースが入るとだめな見たい。なので別位置に置きましょう。
結構これに時間とられた(汗

2: sbt> install-emulator(install-device)しても動かない
device名が文字化けしているのか端末へのインストールがうまくいかない。
「target/scala_2.8.1」にapkできてるのでそれをインストールして対処。

参考
Android SDK for Scala | ブログ.武田ソフト.jp
Scala + Androidをsbt(Simple Build Tool) とEclipseを併用して開発
EmacsでつくるScala開発環境 前編(scala-mode)