每次重新构建Ant库项目?

5
我有一个Android项目,其中包括两个Android库项目。
我正在使用命令ant debug来构建项目,需要约1分20秒。我已经计算出,第一次Android库项目的编译需要17秒,第二个Android库项目的编译需要42秒。
由于这两个依赖项目很少更新,因此没有必要每次都编译它们。
如何避免ant在每次构建时编译这两个Android库项目?

你可以将ant与ivy依赖管理结合使用。或者切换到maven,它有自己的依赖管理。 - Joop Eggen
3个回答

7

在本地属性文件local.properties中添加dont.do.deps=1 (或以其他方式将此属性传递给ant)


2
这就是Android Library Project的设计和目前应该工作的方式,它总是与主应用程序项目编译间接相关联。请参见官方开发指南

然而,库项目与标准Android应用程序项目不同,您不能直接将其编译成自己的.apk文件并在Android设备上运行它。同样,您也不能将库项目导出为独立的JAR文件,就像真正的库一样。相反,您必须通过引用依赖的应用程序中的库并构建该应用程序来间接地编译库。

... ...

开发注意事项

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

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

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

你所讲的是一个预编译的jar文件。这里有一些帖子建议使用Eclipse导出功能或者库项目bin目录下自动生成的jar文件,在一些简单的情况下,比如库项目只包含纯Java文件,这可能会奏效,但如果库项目变得更加复杂,包含Android资源文件,那么这种方法就不起作用了。在这种情况下,有一些肮脏的hack,比如这个,我认为它会带来更多的麻烦而不是解决问题。
Android开发团队正在努力将Android Library Project从基于源代码的机制转变为基于编译代码的库机制。更多细节请参见此博客文章。我建议等待官方开发团队的最终解决方案。

1

当我在项目中添加库时,我遇到了Android编译缓慢的问题。通过将"--incremental"开关应用于dex工具,我解决了这个问题。请参考SO上的这个问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接