我创建了一个Android项目,可以完成一些非常简单的网络工作。这个项目是独立的,我已经成功地将它作为一个jar文件导出并导入到我工作过的其他项目中。导出此项目时,我只导出用于项目的类文件。 (没有系统文件:即Manifest等)
我希望将此项目作为独立项目保留,因为它在其他项目中使用,将来会更多地使用。
但是,我们还有其他项目需要网络jar的功能和其他一些功能。我想做的是创建一个新项目,导入网络jar文件。为网络jar文件中的所有函数创建包装器,然后添加更多功能。
之后我想将这个项目打包为一个jar文件,这样我就可以将它仅用于需要额外功能的项目。
将此项目作为jar非常重要,因为可能会将此组件提供给其他人使用,并且需要简单/简单的集成。
这对我来说应该非常直接。但我得到noClassDef错误和验证错误。
我甚至将项目剥离为单个函数,该函数从原始网络jar返回一个静态String并通过它仍然得到“找不到从方法xxxx引用的方法xxxx”日志然后无法解析静态方法警告,然后是No ClassDefFoundError。这是logcat。
这样做的正确方法是什么?
谢谢!
答案 0 :(得分:2)
想要使用嵌入式jar文件的Jar文件必须定义自定义类加载器,例如JarClassLoader。
如果您想使用单个jar文件,您还可以使用OneJar,JarJar和ProGuard等选项。