我有一个一直在为我工作的Android库项目,但现在我有兴趣将它“转换”为外部JAR。如何将Android库项目转换为外部JAR?
我该怎么做?
任何Android库项目都可以转换为外部JAR吗?如果不是,有什么限制或限制?
我有一个一直在为我工作的Android库项目,但现在我有兴趣将它“转换”为外部JAR。如何将Android库项目转换为外部JAR?
我该怎么做?
任何Android库项目都可以转换为外部JAR吗?如果不是,有什么限制或限制?
是否可以将任何Android库项目转换为外部JAR?
不是现在。
如果不是,有什么限制或约束?
如果您的库纯粹是Java代码,并且没有资源,那么您可以像创建常规Java那样从.class
文件中创建JAR文件。
如果你的库使用的资源,你仍然可以创建一个JAR如上。但是,您将需要通过反射或getIdentifier()
来查找R
值(例如,R.layout.main
),你的资源不会在JAR打包,但必须另行分配。
在未来,构建工具应该支持创建分发的JAR文件出库项目,完成资源。当前的构建工具确实创建了JAR,但它们并非设计为分布式,而是目前内部构建的工件。
http://developer.android.com/guide/developing/projects/index.html#LibraryProjects声称不能将这些导出到外部JAR。具体报价:
同样,你不能将库项目导出到一个自包含 JAR文件,因为你会为一个真正的图书馆做。相反,您必须通过参考 从属应用程序中的库并构建该应用程序来间接编译库。
谢谢。我是否正确理解从.class文件创建JAR与[jar cf jar-file input-files]一样简单(http://download.oracle.com/javase/tutorial/deployment/jar/build.html )?另外,您能否详细说明通过'getIdentifier()'访问的资源是如何分开分发的? – uTubeFan
@uTubeFan:“我是否正确理解从.class文件创建JAR与jar cf jar-file input-files一样简单?” - 据推测。我自己使用Ant''任务。 “另外,您是否可以详细说明通过getIdentifier()访问的资源是如何分开分发的?” - 嗯,如果它们不在JAR文件中,并且JAR的重用者需要这些文件,则重用者需要以某种方式获取这些文件。我推荐一个包含JAR和'res /'树的ZIP压缩文件。 –
CommonsWare
嗨@uTubeFan假设考虑一个项目** MyTranslator **,其中我正在翻译一些文本,因为我已经导入了一个jar文件** xyztranslator.jar **。现在我想将** MyTranslator **项目转换为**。jar **文件,以便我可以使用** MyTranslator **项目中的所有类以及** xyztranslator.jar **中的所有类。只是我的问题是**如何我可以将一个Android应用程序导出到一个已导入jar文件的.jar文件** –