Help us understand the problem. What is going on with this article?

ScalaでHello Android最速理論

More than 3 years have passed since last update.

環境

  • Windows10
  • Android SDK 25.2.2(最新)
  • Scala 2.11.8
  • sbt 0.13.12
  • Android実機もしくはエミュレータ

おそらくScalaでAndroidが書きたい人ならこの辺りの環境は既に整っていると思うので、環境構築に関しては割愛します。
OSはWindowsでなくてもほぼ同様の手順でいけると思われます。

なお、環境変数ANDROID_HOMEにAndroid SDKのパス(android-sdkディレクトリのパス)を設定しておく必要があります。

方針

sbt-androidを使用します。
バージョンは現時点の最新版である1.7.1を対象とします。
sbt-androidはバージョンアップで結構ダイナミックに改変が行われるので、今回紹介する手順も他のバージョンでは通用しないかもしれません。

準備

作成するアプリ用のディレクトリを作成し、その中にprojectディレクトリを作成します。
projectディレクトリ直下に、以下の内容を記載したテキストファイルとしてplugins.sbtを作成します。

project/plugins.sbt
addSbtPlugin("org.scala-android" % "sbt-android" % "1.7.1")

いきなりHello Android

おもむろに上で作成したアプリ用のディレクトリで以下のコマンドを実行します。

sbt "gen-android <パッケージ名> <プロジェクト名>" android:run

ざらざらとログが流れた後で実機なりエミュレータでサンプルアプリが実行された方はラッキー。
おそらく何らかのエラーで止まると思われます。

自分の場合

実機で動かそうとしたところ、INSTALL_FAILED_OLDER_SDKエラーで止まりました。
アプリ用ディレクトリ直下にbuild.sbtが生成されているはずですので、以下を追記します。

build.sbt
minSdkVersion := "11"

指定バージョンは適当です。おそらく6以下にしなければ問題ないと思いますが、10以下だと警告が出ます。
そして下記コマンドでリトライ。

sbt clean android:run

以後は基本的にコード変更したらandroid:run、で良いはずです。

その他、想定されるエラーケース

最新のSDKが入っていない

sbt-androidが最新SDKをインストールしようとするのですが、ライセンス認証に失敗して無限リトライします。
素直にSDK Managerから最新SDKを入れておいてください。

Setz
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away