3

Android 的较新功能之一是能够创建库项目

这对于在您可能正在开发的许多应用程序之间进行单元测试和共享通用功能非常有用,但我似乎偶然发现了它们的实现中的错误。

当您有以下情况时:

-LibraryProject包含LibraryProject/libs/folder/lib.jar在它的构建路径中。

-ReferencingProject参考资料LibraryProject

ReferencingProject您无法访问内部的任何内容lib.jar(例如常量用于与 中的方法进行通信Library Project)。

对此的解决方案是将“lib.jar”作为外部库包含在引用项目中,但这种方法开始否定您从拥有自包含库项目中获得的好处,方法是创建多个手动添加的对可能移动/更改的资源的引用在库项目的开发过程中(更不用说导致一些相当混乱的错误)。

有什么方法可以将包含的库类公开给引用项目,而不必手动将它们作为外部 jar 引用?

4

1 回答 1

5

正如@Selvin 所说,

在 Library Project 中,您可以使用以下命令在弹出的窗口中指定要将哪些库标记为“已导出”:Project properties => Java Build Path => Order and Export。在此示例中,您将检查libs/folder/lib.jar.

清理并构建库项目,“导出”的库现在包含在生成的 jar 中。

编辑

这是升级到 ADT 17 的症状 - (Android 团队:当更新破坏现有架构时,也许在您的发行说明中添加一些警告?)

http://tools.android.com/recent/dealingwithdependenciesinandroidprojects

如果您不想将库添加到"Order and Export"然后将本地 jar 放在/libs/ 基本文件夹中,则会自动将其添加到“Android 依赖项”中,这些依赖项会从共享库创建的 jar 中导出。

编辑2

最近的 ADT 升级还会让您在 Java 构建路径中手动选择“Android 依赖项”作为“导出”。同样,警告会很好。

于 2012-04-11T15:55:26.337 回答