如何为Android库项目创建jar

如何为Android库项目创建jar,android,jar,android-library,Android,Jar,Android Library,我必须创建一个库,将其导出到jar文件中的客户机。有没有办法创建一个包含资源的jar Google adMob有这样一个jar,其中包含资源文件,如R$layout.class。 描述了实现此目的的一些方法,但我无法确切理解如何使用上述方法将库项目导入应用程序。您不能将资源文件打包到jar中。可以将项目导出为库项目 将不引用android ie纯java类中资源的实用程序类导出为jar文件 检查下面的链接 使项目成为库项目的步骤 右键单击您的项目。转到属性。选择Android。确保已选中“是库

我必须创建一个库,将其导出到jar文件中的客户机。有没有办法创建一个包含资源的jar

Google adMob有这样一个jar,其中包含资源文件,如R$layout.class。
描述了实现此目的的一些方法,但我无法确切理解如何使用上述方法将库项目导入应用程序。

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

将不引用android ie纯java类中资源的实用程序类导出为jar文件

检查下面的链接

使项目成为库项目的步骤

右键单击您的项目。转到属性。选择Android。确保已选中“是库”

在android项目中引用库项目

右键单击您的项目。转到属性。选择Android。单击添加。浏览并删除库项目

从文件中引用


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

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

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

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

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

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

第五步:压缩或分发复制的Android库项目

这将为您提供一个类似Play Services one的Android库项目,其中资源可用,但源代码不可用

更新:现在一种更好的方法是将库项目打包为AAR,这是Android的原生方法,可以从编译的代码和所需资源中创建可重用工件。目前(2014年7月),Android Gradle、Android Studio和
Android maven插件可以创建和使用AAR。

这很有效

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

  • 这将与所有资源一起工作。谢谢大家。对于您的响应

    请按照以下步骤获取库的可分发jar(已针对库项目进行验证,无需外部依赖项):

  • 创建您的库项目。清洁它。您将在bin文件夹中获得一个libraryProjectName.jar文件。(确保在库项目中选择了“是库”
  • 将.jar文件复制到目标应用程序的libs文件夹中
  • 刷新您的工作区,然后按
    Ctr+Shift+O
    (在Windwows/Linux上)或
    Cmd+Shift+O
    (在Mac上)从添加的库中解决任何导入依赖项
  • 在遇到任何问题时发表评论。

    使用adt 22.2.1测试

  • 创建您的库项目
  • 创建空项目
  • 将库项目添加到空项目中
  • 建设项目
  • 在/gen文件夹中,您将找到库项目的类,它将包含lib项目的资源
  • 导出JAR(仅从/gen文件夹中选择此类)
  • 从lib项目导出JAR
  • 将导出的文件重命名为zip并合并内容
  • 将最终文件重命名为JAR并将其添加到项目中

  • 使用Eclipse ADT v22.6.2,您可以通过单击文件->导出->Java->jar文件导出jar,选择目录和保存的目的地。

    这是一种使用ant的简单方法,可以在凌乱的源代码中找到。将下面的代码添加到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版,这就像吃蛋糕一样简单。
    已经回答了完整的解决方案,屏幕截图显示在

    上。库不能作为二进制文件(如JAR文件)分发。这将添加到SDK工具的未来版本中。引用新版本,您将有可能创建所谓的aar文件(安卓存档),这正是您想要的。它基本上类似于仅用于库的APK(包含资源、清单等)。因此,如果您希望得到适当的支持,请切换到Gradle。我没有否决(没有足够的分数)但我可以猜到,您没有回答如何为Android库项目创建jar,而是回答说这是不可能的。所有其他答案实际上都显示了一个(工作)创建这样的jar的方法。库项目不同于标准的Android应用程序项目,因为您无法将其直接编译为自己的.apk并在Android设备上运行。类似地,您无法将库项目导出为自包含的jar文件,就像您对真正的库所做的那样。相反,您必须通过以下方式间接编译库:引用依赖应用程序中的库并生成该应用程序。此引用自文档支持您的答案iguess@CommonsWare如果ProGuard没有在JAR上运行,那么您的大纲就可以很好地工作