我有一个包含两个 Android 库项目的 Android 项目。
我正在使用命令ant debug
构建项目,大约需要 1 分钟和 20 秒。我算了一下,编译第一个android库项目用了17秒,编译第二个android库项目用了42秒。
由于这两个依赖项目很少更新,因此不必每次都编译它们。
如何避免 ant 编译每个构建的两个 Android 库项目?
我有一个包含两个 Android 库项目的 Android 项目。
我正在使用命令ant debug
构建项目,大约需要 1 分钟和 20 秒。我算了一下,编译第一个android库项目用了17秒,编译第二个android库项目用了42秒。
由于这两个依赖项目很少更新,因此不必每次都编译它们。
如何避免 ant 编译每个构建的两个 Android 库项目?
添加
dont.do.deps=1
到您的local.properties
(或以其他方式将此属性传递给 ant)
这就是 Android 库项目的设计方式和假设目前的工作方式,它总是与主应用程序项目编译一起间接编译,请参阅这个官方开发指南:
但是,库项目与标准 Android 应用程序项目的不同之处在于,您不能将其直接编译为自己的 .apk 并在 Android 设备上运行。同样,您不能将库项目导出到自包含的 JAR 文件,就像对真正的库所做的那样。相反,您必须通过在依赖应用程序中引用库并构建该应用程序来间接编译库。
……
开发注意事项
您不能将库项目导出到 JAR 文件
库不能作为二进制文件(例如 JAR 文件)分发。这将在 SDK 工具的未来版本中添加。
你说的东西是一个预编译的 jar 文件。这里有一些帖子建议使用Eclipse导出功能或库项目bin目录下自动生成的jar,在库项目包含纯Java文件的一些简单情况下可能会起作用,但如果库项目变得更复杂,则无法使用包含 Android 资源文件。在这种情况下,有一些像这样的肮脏黑客,IMO 造成的麻烦比它解决的要多。
Android 开发团队正在努力,并尝试将 Android Library Project 从基于源的机制更改为基于编译代码的库机制。此博客文章中的更多详细信息。我建议等待官方开发团队的最终解决方案。
当我的项目中有库时,我遇到了 Android 编译缓慢的问题,并通过将“--incremental”开关应用于 dex 工具解决了这个问题。请参阅SO 上的这个问题。