android - 将 "Android Library Project"包含的 jar 暴露给引用它们的项目

标签 android library-project

Android 的一项新功能是能够创建 Library Project .

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

当您遇到以下情况时:

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

-ReferencingProject 引用 LibraryProject

ReferencingProject 中,您无权访问 lib.jar 中的任何内容(例如常量用于与 Library Project).

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

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

最佳答案

正如@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 依赖项”,这些依赖项导出到从您的共享库创建的 jar 中。

EDIT2

最近的 ADT 升级还要求您在 Java 构建路径中手动选择“Android Dependencies”作为“Exported”。同样,警告会很好。

关于android - 将 "Android Library Project"包含的 jar 暴露给引用它们的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108252/

相关文章:

Android Studio 库项目错误

android - 当用户停止在 android 中的 fragment viewpager 中滑动时加载数据?

Android - 触摸绘图

Android Sherlock Action - ShareActionProvider 图标

android - Radiobutton drawable 在 ViewPager 中最终处于不正确的状态

android - 在Android studio中为另一个项目添加项目依赖

android - proguard.cfg 在使用 LIBRARY 的导出应用程序中不起作用

android - 为数据库处理创建数据模型类

java - 有没有办法让库知道使用它的应用程序的包名称?

android - iOS 中的 "Library projects"