如何为 Android 库项目创建 jar

我必须在 jar 文件中创建一个要导出到客户端的库。有什么方法可以创建一个包含资源的罐子吗?

Google adMob 有这样一个 jar,其中包含资源文件,比如 R $layout.class。 这个页面 描述了一些做到这一点的方法,但是我不能确切地理解如何使用上述方法将库项目导入到应用程序中。

99447 次浏览

不能将资源文件打包到 jar 中。可以将项目导出为库项目。

将不引用 android 中的资源的实用工具类导出为 jar 文件。

查看下面的链接

Http://developer.android.com/tools/projects/index.html

使项目成为库项目

右键单击您的项目。转到属性。选择 Android。确保勾选了 Is Library。

在 android 项目中引用库项目

右键单击您的项目。转到属性。选择 Android。单击 Add.Browse 和库项目。

引用文件

库项目与标准 Android 应用程序项目的不同之处在于,您不能直接将其编译为自己的库项目。并在 Android 设备上运行它。类似地,您不能像对待真正的库那样,将库项目导出到一个自包含的 JAR 文件。相反,必须通过引用依赖应用程序中的库并构建该应用程序来间接编译该库。

这是你能得到的最接近的结果:

步骤 # 1: 创建一个常规的 Android 库项目,并让它工作。

步骤 # 2: 将 Android 库项目复制到另一个目录中。

步骤 # 3: 从原始 Android 库项目中编译的 Java 类创建一个 JAR,并将该 JAR 放在步骤 # 2中复制的 libs/目录中。您应该能够在这个 JAR 上手动运行 ProGuard,尽管我还没有试过。

步骤 # 4: 删除复制的库项目的 src/目录中的所有内容,留下空的 src/目录。

步骤 # 5: 压缩或以其他方式分发复制的 Android 库项目。

这将为您提供一个 Android 库项目,比如 Play Services 项目,其中的资源是可用的,但源代码是不可用的。

UPDATE : 现在一种更好的方法是将库项目打包为 AAR,这是 Android 的本机方法,可以通过编译的代码和所需的资源创建可重用的构件。目前(2014年7月) ,Grandle for Android,Android Studio 和 android-maven-plugin可以创建和使用 AAR。

成功了!

  1. 通过取消选择 IsLibrary 标志,使您的库项目成为普通项目。
  2. 作为 Android 应用程序执行您的项目(它不会显示任何错误)
  3. 您将在 bin 文件夹中找到一个. jar 文件和. apk 文件。
  4. 给你。罐谁想要使用你的图书馆。
  5. 告诉他们只需将外部 jar 导入到构建路径中。

这将与所有的资源工作的罚款。感谢你所有。为你的回应

按照以下步骤获取库的可分发 jar (在没有外部依赖项的情况下对库项目进行验证) :

  1. 创建库项目。擦干净。您将获得 bin 文件夹中的 library ProjectName.jar 文件。(在图书馆项目中,确保 “是图书馆”选定
  2. 将. jar 文件复制到 目标申请Libs文件夹中
  3. 刷新您的工作区并按 Ctr+Shift+O(在 Windows/Linux 上)或 Cmd+Shift+O(在 Mac 上)以解决所添加的库的任何导入依赖项。

面对任何问题时发表评论。

使用 adt 22.2.1进行测试

  1. 创建库项目
  2. 创建空项目
  3. 将库项目添加到空项目
  4. 建立项目
  5. 在/gen 文件夹中,您将找到库项目的类,这将包含库项目的资源。
  6. 导出 JAR (从/gen 文件夹中只选择这个类...)
  7. 从 lib 项目导出 JAR
  8. 将导出的文件重命名为 zip 并合并内容
  9. 将最终文件重命名为 JAR 并将其添加到 project。

在 Eclipse ADT v22.6.2中,只需单击 File-> Export-> Java-> Jar File,选择要保存的目录和目的地,就可以导出 Jar。

这里有一个简单的方法来做它与蚂蚁,发现这在 Volley 源代码。将下面的代码添加到 custom_ rules. xml,然后使用 ant jar构建

<?xml version="1.0" encoding="UTF-8"?>
<project name="volley-rules" default="help">


<!-- A rule to generate the JAR for inclusion in an Android
application. Output file will be bin/volley.jar -->
<target name="jar" depends="-compile">
<jar destfile="bin/volley.jar"
basedir="bin/classes" />
</target>
</project>

根据最新的 Android Studio v1.2,这就像吃蛋糕一样简单。 已经回答了完整的解决方案与截图在 < a href = “ https://stackoverflow.com/a/29111568/2745762”> 这个链接