2013-01-16 206 views
0

我创建了一个可以完成一些非常简单的网络工作的Android项目。这个项目是独立的,我已经成功地将它导出为一个jar文件,并将其导入到我工作过的其他项目中。导出此项目时,我只导出用于该项目的类文件。 (没有系统文件:即清单等)创建一个包含另一个jar文件的Jar文件

我想离开这个项目作为独立的,因为它在其他项目中使用,并将在未来使用更多。

但是,我们还有其他需要网络jar功能和其他功能的项目。我想要做的是创建一个新项目,导入网络jar文件。为网络jar文件中的所有功能创建包装,然后添加更多功能。

之后我想将此项目打包为一个jar文件,以便我可以仅将它用于需要额外功能的项目。

把这个项目当作jar是很重要的,因为这个组件可能会提供给其他人使用,并且需要简单/简单的集成。

这个缝合像它应该是非常直截了当的我。但是我得到noClassDef错误并验证错误。

我甚至把项目剥离成一个单一的函数,它从原始的网络jar中返回一个静态的字符串,并通过它并且仍然有一个“找不到从方法xxxx引用的方法xxxx”日志,然后无法解析静态方法警告,然后是一个No ClassDefFoundError。这里是logcat。

log

什么是做到这一点的正确方法?

谢谢!

回答

2

想要使用嵌入式jar的jar文件必须定义一个自定义类加载器,如JarClassLoader

如果您想使用单个jar文件,您还可以选择OneJar,JarJar和ProGuard等选项。

+0

谢谢戴夫!我结束了使用FatJar,现在我可以直接访问网络jar文件资源和新的项目资源,非常方便!谢谢一堆! – Dave

相关问题