如何在Eclipse中引用Android库项目中的外部jar

如何在Eclipse中引用Android库项目中的外部jar,android,Android,哦,安卓。我多么喜欢你的废话 我有一个工作区,里面有几个项目。App1和App2是Android应用程序。Common是一个Android库项目。App1和App2依赖于公共(通过Android选项卡链接) Common有一些外部依赖项,即httpmime和apache-mime4j,它们作为jar文件存在 出于某种原因,我似乎需要将mime JAR添加到App1和App2的构建路径中,以便编译成功。这似乎真的很愚蠢。在普通Java中,我会在App1和App2的构建路径中添加Common,这样就

哦,安卓。我多么喜欢你的废话

我有一个工作区,里面有几个项目。App1和App2是Android应用程序。Common是一个Android库项目。App1和App2依赖于公共(通过Android选项卡链接)

Common有一些外部依赖项,即httpmime和apache-mime4j,它们作为jar文件存在

出于某种原因,我似乎需要将mime JAR添加到App1和App2的构建路径中,以便编译成功。这似乎真的很愚蠢。在普通Java中,我会在App1和App2的构建路径中添加Common,这样就可以了。这是否意味着我必须将JAR添加到每个Android应用程序中

-安迪


注意:如果我没有如上所述配置构建路径,我会得到“类型org.apache.james.mime4j.message.SingleBody无法解析。它是从必需的.class文件| DataCallUtil.java |/App1/Common/util |第364行间接引用的”

尝试将公共项目编译成jar,并将其作为外部jar添加到您的App1或App2项目中。

为了补充omermuhammed的回答,如果公共项目不是经常更改的项目,那么创建jar并在其他项目中使用它是一个很好的解决方案


要创建jar,右键单击Eclipse->Export->Java->jar文件上的项目,然后选择要包含在jar中的文件夹,在您的例子中,我想这包括文件夹gen和libs(libs是带有httpmime和apache-mime4j JARS的文件夹),但可能既不是res也不是项目的根目录(使用诸如AndroidManifest.xml之类的文件,这些文件将导致依赖项目中的同一文件出现问题)。

我认为奥默罕默德和阿米特没有意识到Visser正在谈论一个Android库项目。 对于这些项目,我认为不可能创建jar(jar与所有Android资源无关)

根据我在Android Library项目中的经验,这种项目基本上就是打包好的源代码和资源,并准备包含在另一个项目中。 但是设置不是包的一部分,因此您必须为每个应用程序包含lib。 根据我的经验,这种设置并不是经常改变的,所以也没那么糟糕


Android Library项目离完美还有很长的路要走,但与之前相比仍有很大的改进(即没有任何改进)。

我该怎么做?文档()说明,"但是,库项目与标准Android应用程序项目的不同之处在于,您无法将其直接编译为自己的.apk或在Android平台上运行。类似地,您也无法将库项目导出为自包含的JAR文件,就像对真正的库所做的那样。相反,您必须通过引用间接编译库将公共项目编译成一个jar,复制到android项目下的“lib”文件夹中,然后在eclipse中右键单击android项目->构建路径->配置构建路径。现在,在左侧面板中选择“Java构建路径”。现在在“库”下面板上,单击“添加外部jar”并添加您的jar。保存并编译。它应该可以工作。另外,不要忘了在AndroidManifest.xml中添加所需的行,标记为“我理解您正在谈论的过程。但是您的前7个单词是”,将公共项目编译成jar。“怎么做?编写一些定制的Ant来实现这一点?我更愿意做我正在做的事情,并且必须在所有地方添加依赖项。这是我希望Eclipse能做得很好的事情。如果不行,那很好。我只想知道这是安卓/Eclipse的一个缺点。+1是一个很好的介绍和一个很好的问题。检查这个+1来澄清
“这些设置不是程序包的一部分“
@alocaly+1对此有任何更新吗?有没有办法不将库项目的引用jar文件包含到每个android应用程序项目中?顺便说一句,可以使用自定义Ant Build创建android jar文件,但仍然需要将引用jar文件包含到应用程序项目中。