【发布时间】:2013-11-27 21:40:28
【问题描述】:
标题可能看起来令人困惑(尽管准确)。让我再解释一下:
我有一个 android Library 项目,我们称之为 ProjectA。我还有第二个 android Library 项目,我们称之为 ProjectB。 ProjectB 和 ProjectA 在同一个工作区中,并且 ProjectB 在其库列表(项目属性)中引用 ProjectA。所以 ProjectB 正在使用 ProjectA。
现在我想要完成的是获取一个简单的库 jar - ProjectB,并将这个 jar 作为外部库包含在我的另一个 android 项目(这次是 android 应用程序)中。
但是...当我编译 ProjectB 时,jar 太小(ProjectA 的 jar 超过 300KB,而 ProjectB 的 jar 只有 14KB),所以我确定它不包含我的 jar 文件中的 ProjectA在 bin 文件夹中找到(ProjectA 的)。简单算一下,ProjectB 的 jar 应该大 300KB。
重复一遍,我希望将库所需的一切都打包在一个 jar 文件(ProjectB 的 jar 文件)中,这样当我将它导入 Android 应用程序的库时,我可以使用它。
有经验的 Android 开发者帮忙吗?
【问题讨论】:
-
How to combine two Jar files 和 stackoverflow.com/questions/882204/… 和 stackoverflow.com/questions/14350150/… 的可能副本以及更多。但请注意,如果该项目不包含资源,您只能创建一个简单的 Android 库项目的 JAR。
-
据我所知,您提到的所有这些主题都涉及非android项目。据我所知,这些都是特殊处理的,因此我需要一个与 Android 应用程序项目和 Android 库项目相关的解决方案。我已经尝试过其他人提到的几个解决方案(在 java 相关项目中),但不适用于我上面解释的场景。
-
由于您是从 Android 库项目手动创建 JAR,因此它们应该像任何其他 JAR 一样合并。除了手动创建之外,没有其他方法可以以可靠的方式从 Android 库项目中获取 JAR。而且,正如我之前提到的,如果您尝试将带有资源的 Android 库项目转换为 JAR,那是不可能的,更不用说您的合并目标了。
-
“并从它的 bin 文件夹中获取一个 jar”——这不是供您使用的。这仅适用于将库项目附加到托管应用程序时的 Ant/Eclipse 构建过程。它本身并不是一流的构建工件。因此,当该 JAR 可能没有按照您想要的方式运行时不要抱怨,如果将来不再为您保存该 JAR 也不要抱怨。如果您想要一个 JAR 文件,请自己制作一个。 JAR 文件已经存在了大约 15 年,网上有很多关于创建它们的说明。
-
“我理解正确吗?” - 是的。 “如果是,那么将几个罐子组合成一个罐子的说明......” - JAR 是一个 JAR,所以它应该可以正常工作。如果遇到问题,请在解释问题的地方发布一个 SO 问题。 “尤其是我提到的库项目”——一个无资源的 Android 库项目最终只是一个普通的 Java 项目,你碰巧在其中编译
android.jar而不是来自 Java SE 的东西。图书馆项目只有在资源、清单合并等方面才能与众不同。