将"Android库项目"的jar包括在引用它们的项目中

Gra*_*eme 3 android library-project

Android的一个新功能是创建图书馆计划的能力.

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

当您遇到以下情况时:

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

- ReferencingProject参考LibraryProject.

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

对此的解决方案是在引用项目中包含"lib.jar"作为外部库,但是这种方法开始否定通过创建多个手动添加的资源可以移动/更改来自拥有自包含库项目所获得的好处在图书馆项目的开发过程中(更不用说引起一些相当混乱的错误).

有没有办法将包含的libs类暴露给引用项目,而不必手动引用它们作为外部jar?

Gra*_*eme 5

正如@Selvin所说,

在库项目中,您可以使用以下命令在窗口中指定要标记为"已导出"的库: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 Dependencies"中,这些"Android依赖项"将从您的共享库创建的jar中导出.

EDIT2

最近的ADT升级还可以在Java Build Path中手动选择"Android Dependencies"作为"Exported".再次,警告会很好.