9

我用 sbt android-plugin 创建了一个演示应用程序。

该应用程序非常简单。我已经在MainActivity.java下面放置了一个文件/src/main/java/my/package/,当按下一个按钮时,它会带你一秒钟Activity,但在Scala.

一切工作正常,但构建时间让我很生气。当我修改我在设备中运行的内容时,使用:

> 安卓:包调试

> 安卓:启动设备

我的问题是构建一个包含两个活动的项目几乎需要一分钟。还有另一种编译和运行的方法吗?

这是我的 android:package-debug 输出

> android:package-debug [info] 写 /Users/macarse/Documents/demo/target/src_managed/main/scala/my/package/TR.scala [info] 将 1 个 Scala 源编译到 /Users/macarse/Documents/demo /target/scala-2.9.0-1/classes... ProGuard,4.6 版 ProGuard 在 GNU 通用公共许可证下发布。因此,您必须确保链接到它的程序(scala,...)也带有 GNU 通用公共许可证。或者,您可以向 ProGuard 的作者申请例外。读取程序目录[/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes] 读取程序jar [/Users/macarse/.sbt/boot/scala-2.9.0-1/lib/scala -library.jar](已过滤)读取库 jar [/Users/macarse/Documents/android-sdk-mac_86/platforms/android-4/android.jar] 注意:您忽略了所有警告!

4

2 回答 2

5

有几个选项:

还有一个名为treeshaker for Eclipse的项目,它比 proguard 快得多,但它还没有与 sbt 插件集成。

于 2011-10-31T14:07:10.990 回答
3

这需要很长时间,因为 proguard 需要处理 Scala 标准库以最小化您获得的 .apk 文件,而 Scala 标准库非常庞大。

如果你没有使用 Scala 2.9 的特性,我会建议你切换到 Scala 2.8,因为 2.8 有一个更小的标准库。

另一方面,不要android:package-debug在不必要的时候使用。compile将编译您的源代码,如果您只想确保您的程序可以编译就足够了。

android:package-debug在您即将在 Android 设备上进行测试时使用,这将节省您的时间。

于 2011-10-31T04:06:02.810 回答