【问题标题】:Expose an "Android Library Project"'s included jars to Projects which reference them将“Android 库项目”包含的 jar 暴露给引用它们的项目
【发布时间】:2012-04-11 14:41:41
【问题描述】:

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

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

当你有以下情况时:

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

-ReferencingProject 引用LibraryProject

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

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

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

【问题讨论】:

  • 是的,您可以在 Eclipse 中执行此操作...只需导出它们(项目属性 => Java 构建路径 => 订单和导出)检查“Android 依赖项”

标签: android library-project


【解决方案1】:

正如@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 依赖项”作为“已导出”。同样,警告会很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 2012-12-03
    • 2014-02-05
    • 2014-01-03
    相关资源
    最近更新 更多