使用sbt android-plugin构建时间长

时间:2011-10-29 19:33:08

标签: android scala sbt sbt-android-plugin

我用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 General下发布的   公共许可证。因此,您必须确保链接到的程序   它(scala,...)也带有GNU通用公共许可证。   或者,您可以向作者申请例外   ProGuard的。阅读程序目录   [/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes]阅读   程序罐   [/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]   注意:你忽略了所有警告!准备输出罐   [/Users/macarse/Documents/demo/target/classes.min.jar]复制   程序目录中的资源   [/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]   (已过滤)[info]德兴   /Users/macarse/Documents/demo/target/classes.dex [info]打包   /Users/macarse/Documents/demo/target/demo-0.1.apk [success]总计   时间:56秒,2011年10月29日下午4:22:54完成

2 个答案:

答案 0 :(得分:5)

有几种选择:

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

答案 1 :(得分:3)

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

如果你没有使用Scala 2.9的功能,我建议你切换到Scala 2.8,因为2.8有一个较小的标准库。

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

当您要在Android设备上测试时,只能使用android:package-debug,这样可以节省您的时间。