2013-04-17 62 views
2

我正在编写一个android库(没有资源),并计划将它作为jar分发。我的library.jar依赖于第三方库说:thirdParty_1.jar和thirdParty_2.jar。我在eclipse中构建library.jar。 thirdParty_1.jar和thirdParty_2.jar包含在构建路径中,并检查导出的顺序。 当我在示例应用程序中放置library.jar时,它会给出第三方库中的类未找到的运行时异常。如何在Android项目中将一个jar包打包到另一个中

你知道最新的将第三方库封装到自己的jar中并将其作为独立jar分发的正确方法吗?

[更新] 我可以使用Eclipse FatJar插件创建一个jar。它是唯一一种将jar和jar一起发布的依赖关系吗?

+0

如果您目前正在尝试创建一个Android库,那么不是一个Java库,而是一个真正具有资源的Android库,那么您无法将它打包成一个jar包。 (按设计) –

+0

@thibaultd:是的,我知道你的意思。我的库中没有任何资源,只是简单的java代码。我能够旋转一个jar,并能够在另一个应用程序中使用它,然后我必须添加这个新的外部jar的依赖。我将外部jar放在“libs”文件夹下,我发现它也包含在“Android Dependencies”中,但它在运行时失败并且给外部jar中的类提供NoClassDefFound。 – bianca

回答

0

我已经设法做到这一点,使用蚂蚁的zip任务-post-build

编辑build.xml底部看起来像这样:

<!-- version-tag: custom --> 
<import file="${sdk.dir}/tools/ant/build.xml" /> 
<target name="-post-build"> 
    <zip destfile="bin/my-library.jar"> 
     <zipgroupfileset dir="bin/" includes="classes.jar"/> 
     <zipgroupfileset dir="libs/" includes="*.jar"/> 
    </zip> 
</target> 

我不知道Eclipse如何处理的构建过程,因为我独占使用发展的命令行SDK工具,但它可能调用在ant debugant release什么的,所有这些取决于-post-build目标。

相关问题