2013-11-27 192 views
2

标题可能看起来很混乱(虽然准确)。让我用更多的话来解释它:如何将android库项目导出为包含自己引用的库项目jar的jar文件

我有一个android库项目,可以称之为ProjectA。我也有第二个Android库项目,让我们称之为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应用程序的库时,我可以使用它。

从expierienced Android开发任何帮助?

+0

[如何结合两个Jar文件]的可能重复(http://stackoverflow.com/questions/5080220/how-to-combine-two-jar-files)和http://stackoverflow.com/questions/ 882204 /合并多个瓶子在一个单一的jar和http://stackoverflow.com/questions/14350150/how-to-combine-multiple-jars-into-one和无数更多。但请注意,如果该项目不包含资源,则只能创建Android库项目的简单JAR。 – CommonsWare

+0

从我看到的,你提到的所有这些话题都涉及到非android项目。据我所知,这些都是特别处理的,因此我需要一个完全适用于Android应用程序项目和Android库项目相关的解决方案。 我已经尝试了其他人提到的几个解决方案(在java相关项目中),但在我上面解释的场景中不适用。 – Lucas

+1

由于您是从Android库项目手动创建JAR,因此它们应该像其他任何JAR一样进行合并。除了通过手动创建JAR之外,没有其他方式可以以可靠的方式从Android库项目中获取JAR。而且,正如我之前提到的,如果您试图将资源中的Android库项目转换为JAR,那是不可能的,更不用说您的合并目标了。 – CommonsWare

回答

-1

您需要确保在导出路径中导出库。对于Eclipse,您可以右键单击该项目,选择“构建路径”>“配置构建路径”,转到右侧的“订购和导出”选项卡,并确保您的库已在列表中选中(如果您的Project有多个依赖关系,它可能包含在几个库组之一中)。

+0

我假设你的意思是在我的“ProjectB”中,从上面的例子中做到这一点?如果是这样,我没有在那里列出ProjectA,因为它被项目引用,而不是外部jar(请记住)。所以我的“ProjectA的”jar被列在“Android Dependencies”下,并且确实被导出,但仍然没有在ProjectB的jar中包含ProjectA的jar。 – Lucas

0

如果您正在寻找最快的方法来完成此操作,请在Eclipse中突出显示您的库项目,然后转至File> Export,然后在Java下选择JAR。从那里,您可以选择多个选项,包括哪些其他被引用的项目应作为JAR的一部分导出。

Commonsware是正确的,它只是一个JAR,没有魔法。如果您需要构建系统选项,请考虑使用Ant或Gradle为您打包JAR。不过,请尝试使用bin文件夹中的内容,因为这不适合您使用。

相关问题