【发布时间】:2011-12-19 21:41:40
【问题描述】:
我有一个运行良好的 Android 库项目,但现在我有兴趣将其“转换”为外部 JAR。
我该怎么做?
可以将任何 Android 库项目转换为外部 JAR 吗?如果不是,有什么限制或限制?
【问题讨论】:
标签: java android jar library-project
我有一个运行良好的 Android 库项目,但现在我有兴趣将其“转换”为外部 JAR。
我该怎么做?
可以将任何 Android 库项目转换为外部 JAR 吗?如果不是,有什么限制或限制?
【问题讨论】:
标签: java android jar library-project
任何 Android 库项目都可以转换为外部 JAR 吗?
现在不行。
如果不是,有什么限制或限制?
如果您的库是纯 Java 代码,没有资源,您可以使用 .class 文件创建 JAR,就像使用常规 Java 一样。
如果您的库使用资源,您仍然可以像上面那样创建 JAR。但是,您需要通过反射或getIdentifier() 查找R 值(例如R.layout.main),并且您的资源不会打包在JAR 中,而是必须单独分发。
在未来,构建工具应该支持从库项目中创建可分发的 JAR 文件,并包含资源。当前的构建工具确实会创建 JAR,但它们并不是为分布式而设计的,而是目前的内部构建工件。
【讨论】:
getIdentifier()访问的资源是如何分开分配的?
<jar> 任务。 “另外,你能详细说明一下通过 getIdentifier() 访问的资源是如何分开分布的吗?” -- 嗯,好吧,如果它们不在 JAR 文件中,并且 JAR 的重用者需要这些文件,那么重用者需要以某种方式获取这些文件。我推荐一个包含 JAR 和 res/ 树的 ZIP 存档。
http://developer.android.com/guide/developing/projects/index.html#LibraryProjects 声称您不能将这些导出到外部 JAR。具体报价:
同样,您不能将库项目导出到独立的 JAR 文件,就像您对真正的库所做的那样。相反,您必须 通过引用库中的库间接编译库 依赖应用程序并构建该应用程序。
【讨论】: