我正在尝试让一个 hello world android 应用程序与 scala 和 intellij 一起工作尝试相同壮举的人必须熟悉以下步骤。当我使用 sbt 时,问题发生在最后
请注意我使用的每个工具的版本。对于初学者,我使用的是 java 版本 1.7.0_07
- 下载并设置 android sdk。我已经下载了从 1.5 (API 3) 到 4.1 (API 16) 的所有版本。我不会对此进行进一步的详细介绍。已经有很多教程了。
我们将需要环境变量中的 android home 路径。所以让我们为当前用户设置一个持久的环境变量
gedit ~/.pam_environment
现在附加这个:ANDROID_HOME= 例如
ANDROID_HOME=/home/pligor/android-sdks
现在让我们使用 sbt 工具。我们宁愿手动安装 sbt。在链接中找到“Unix”部分: https ://github.com/harrah/xsbt/wiki/Getting-Started-Setup 并下载 sbt-launch.jar 并将其放入 ~/bin 目前这是版本 0.12.0然后创建一个 sbt 文件:
gedit ~/bin/sbt
在里面写下这一行:
java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar `dirname $0`/sbt-launch.jar "$@"
并使脚本可执行:
chmod u+x ~/bin/sbt
现在你需要为 intellij 安装一个 sbt 插件。sbt-idea 版本 1.1.0:
gedit ~/.sbt/plugins/build.sbt
在行内添加 append (记住每个 .sbt 文件用一个额外的空行分隔每个语句):
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.1.0")
对于 github 模板,您需要 giter8 工具。所以执行:
卷曲https://raw.github.com/n8han/conscript/master/setup.sh | 嘘
然后执行:
cs n8han/giter8
现在我使用 g8 从 jberkel 获取一个 android 应用程序模板:
g8 jberkel/android-app
有一些问题需要您设置。目前我将所有内容都保留为默认值。这意味着我使用 scala 版本 2.9.1 和 Android 2.3.3 (API 10) 和 scalatest_version 1.8.RC1。我不习惯使用 proguard,因为我以前没有使用过它,所以我将 useProguard 设置为 false。
运行 sbt 之前: android-plugin 目前兼容 0.11.3 版本的 sbt 我们需要做一个调整。所以在新的 android 应用程序的文件夹中执行:gedit project/build.properties 并插入这一行:sbt.version=0.11.3
在同一文件夹内执行: sbt 'gen-idea no-classifiers' compile
然后进入sbt交互模式控制台:sbt
在控制台内执行:android:package-debug
而且我相信这些警告是问题开始的地方: 故障处理:错误的类文件魔术(cafebabe)或版本(0033.0000)......同时解析my/android/project/R$id.class
现在您可以尝试启动一个 android 模拟器: android:emulator-start # 用于获取 avds 列表,例如 android:emulator-start android2_3_3
模拟器完全启动后,像这样执行 android 应用程序:android:start-emulator
在这一切之后,应用程序将崩溃!