每次Ant重建库项目

时间:2012-07-07 14:03:07

标签: android caching ant compilation android-library

我有一个包含两个Android库项目的Android项目。

我正在使用命令ant debug来构建项目,大约需要1分钟和20秒。我已经算上17秒用于编译第一个android库项目,42秒用于编译第二个android库项目。

由于这两个依赖项目很少更新,因此不必每次都编译它们。

如何避免每次构建时编译两个Android库项目?

3 个答案:

答案 0 :(得分:7)

添加 dont.do.deps=1 local.properties {或通过其他方式传递此属性)

答案 1 :(得分:2)

这就是Android库项目的设计和假设目前的工作方式,它总是与主应用程序项目编译间接编译,请参阅official dev guide

  

但是,库项目与标准Android应用程序项目的不同之处在于,您无法将其直接编译为自己的.apk并在Android设备上运行它。同样,您无法将库项目导出到自包含的JAR文件,就像对真正的库一样。相反,您必须通过引用依赖应用程序中的库并构建该应用程序来间接编译库。

     

......

     

开发注意事项

     
      
  • 您无法将库项目导出到JAR文件

         

    库不能作为二进制文件(例如JAR文件)分发。这将添加到SDK工具的未来版本中。

  •   

如何避免每次构建时编译两个Android库项目?

你所说的是一个预编译的jar文件。这里有一些帖子建议使用Eclipse export functionthe auto-generated jar under library project's bin directory,它可能在一些简单的情况下工作,如库项目包含纯Java文件,但如果库项目变得更复杂,其中包含Android资源将无法工作文件。在这种情况下,有一些像this one这样的肮脏黑客,IMO造成的麻烦比它解决的更多。

Android开发团队正在研究它并尝试将Android Library Project从基于源的机制更改为基于编译代码的库机制。有关此blog post的详细信息。我建议等待官方开发团队的最终解决方案。

答案 2 :(得分:1)

当我在项目中使用库时,我遇到了Android编译速度慢的问题,并通过将“--incremental”切换应用于dex工具解决了这个问题。请参阅this question on SO