Android Scala IDEA 环境

别等时光非礼了梦想. 提交于 2019-12-04 18:15:40

    最近想搞android,scala又是我比较喜欢的语言,于是乎,就想搞个他们的结合体。

    搞这个环境被折磨了好久,从下载android sdk到IDE,再到版本兼容,基本上能碰到的问题都碰了个遍。

    先说android sdk的下载吧。

    为了多下载几个android platform,特意买了vpn。如果大家没有android的版本需求的话,直接去android developer里面下载最新版本即可(mac和win7使用同一家的vpn,win7被各种完暴),如果其他api版本例如 api11下载不下来的话,请放弃,要么找个人发给你也行。

    IDE的话,本人先用了scalaIDE ,再用了原生eclipse+scala插件,最后又尝试了android eclipse +scala插件,要么scala jar包不兼容,要么就不明所以的错误。最后只能用IDEA Community Edtion。

    接下来就是使用sbt下载jar包的问题了。由于刚开始是用的win7,即使挂上vpn,那个速度也不能忍受。最后的方案是,关闭vpn,用迅雷下载jar包,下载完了后,手动塞到特定的文件夹去。然后在使用 gen-idea命令的时候,会下载源码+javadoc,这个搞了半天也没关闭javadoc的下载,后来问了下老猪。

    在~/.sbt/sbt.sbt中  添加 transitiveClassifiers in Global := Seq(Artifact.SourceClassifier)

    执行命令 gen-idea sbt-classifiers  

    未测试过,但应该OK。

    用scala开发android的话,最好使用scaloid框架,它节约了不少代码量。至于如何节约,请参考https://github.com/pocorall/scaloid

    调试的时候,给idea下来了sbt插件,然后将make构建指令改为sbt的 android:package命令。

    即使不使用scaloid框架,也需要android-sdk-plugin https://github.com/pfn/android-sdk-plugin

    创建第一个scala android项目,在android-sdk-plugin 里已经又详细的介绍,这里稍微啰嗦一点。

    1.使用idea直接创建一个android项目。

    2.创建project文件夹,并添加两个文件,build.properties ,plugins.sbt 

    3.在plugins.sbt 里写你要以来的插件基本上,也就这两个

         addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.2.16")

         addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")

    4.在build.properties里面写入 sbt运行版本,例如 sbt.version=0.13.2

    5.在根目录上创建build.sbt

     

import android.Keys._

android.Plugin.androidBuild

name := "name"

scalaVersion := "2.11.0"

proguardCache in Android ++= Seq(
  ProguardCache("org.scaloid") % "org.scaloid"
)

proguardOptions in Android ++= Seq("-dontobfuscate", "-dontoptimize", "-dontwarn scala.collection.mutable.**")

libraryDependencies += "org.scaloid" %% "scaloid" % "3.4-10"

scalacOptions in Compile += "-feature"

run <<= run in Android

install <<= install in Android

   6.在sbt内运行 gen-sbt 

   基本工作就结束了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!