Scalaといっしょ

ScalaでAndroidとiOSとPlayFrameworkを書いてます。

最速でandroid-sdk-pluginをAndroidStudioで使う

android-sdk-pluginプロジェクトを作る

1.コマンドからプロジェクトを作ります。
2.project/plugins.sbtとproject/build.propertiesとbuild.sbtにおまじないを書きます

android create project --target android-19 --path ./android-sdk-plugin-project --package com.example.project --activity MainActivity
cd ./android-sdk-plugin-project
mkdir ./project

cat <<END > project/plugins.sbt
addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.2.10")
END

cat << END > project/build.properties
sbt.version=0.13.2-M2
END

cat << END > build.sbt
import android.Keys._

android.Plugin.androidBuild
END

これで起動する準備が出来ました。

起動します(Java編)

APILevel19のエミュレーターを起動します

コマンド作れてません、スミマセン

sbtからrunします

sbt
android:run

この時実行先端末をみつけられないと、android-sdk-pluginは以下のエラーを吐きます

[trace] Stack trace suppressed: run last android:install for the full output.
[error] (android:install) no devices connected
[error] Total time: 1 s, completed Mar 1, 2014 5:39:30 AM

起動します(Scala編)

rm src/com/example/project/MainActivity.java
cat << END > src/com/example/project/MainActivity.scala
package com.example.project

import android.app.Activity
import android.os.Bundle

class MainActivity extends Activity {
  override def onCreate(bundle: Bundle) {
    super.onCreate(bundle)
    setContentView(R.layout.main)
  }
}
END
sbt
android:run

この時も起動先端末がないとエラーが出ます

IntellijIDEA(Android Studio)化します

project/plugin.sbtにsbt-ideaを追加します(IntellijIDEA Ultimate 13の人は不要)

cat <<END >> project/plugins.sbt

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.7.0-SNAPSHOT")
END
sbt gen-idea

IDEAで開きます
「File」>「Open」>「android-sdk-plugin-project」

IntellijIDEA(Android Studio)の赤線を消す

こんな赤線は2点を確認して修正します。

f:id:shoscala:20140307134403p:plain

ProjectSDKを適切に設定する

f:id:shoscala:20140307134352p:plain

Moduleのandroid-sdk-plugin-projectのDependenciesのModuleSDKをAndroid API 19に設定する

f:id:shoscala:20140307134359p:plain

最後にOKを押す

android-sdk-plugin最高!!

素晴らしいプラグインなのでぜひandroid-sdk-pluginにstarしてあげましょう!