【问题标题】:Creating and distributing jar files in Android在 Android 中创建和分发 jar 文件
【发布时间】:2013-04-22 10:44:28
【问题描述】:

在我的 android 应用程序中,我必须单独实现某个功能,并且需要从中创建一个 库文件(.jar)

主要想法是然后我可以分发该 jar 文件,以便其他应用程序可以在其应用程序中使用该 jar 文件轻松集成此功能。

下面我已经指出了 Manifest 文件中的最低和目标 SDK 版本。

 android:minSdkVersion="7"
 android:targetSdkVersion="15"

我知道我可以创建一个库项目来实现该特定功能,并从我的主项目中获得它的参考。然后将在库项目的 bin 文件夹下创建的 jar 文件分发

对此我有几个问题。

1)由于我没有找到任何解释这件事的好教程,有点不确定这是否是要走的路(分发 jar 文件在 bin 文件夹下创建)。

2) 在库项目的 bin 文件夹下创建的 jar 文件也具有相同的项目名称(例如:- LibraryProjectName.jar)。如果我在分发之前将其重命名为我想要的名称可以吗?

3) 有没有其他替代方法或好的方法?

任何帮助将不胜感激。提前致谢。

【问题讨论】:

标签: android jar android-library


【解决方案1】:

由于我没有找到任何解释这件事的好教程,有点不确定这是否是要走的路(分发 jar 文件在 bin 文件夹下创建)。

我不会。该 JAR 是使用库项目的工件,可能适合也可能不适合第三方。另外,如果你真的需要一个Android库项目,JAR是不够的。

如果我在分发之前将其重命名为我想要的,可以吗?

JAR 名称可以是任何你想要的。

还有其他替代方法或好的方法吗?

首先,除非您需要随代码(或 JAR)一起提供资源,否则不要创建 Android 库项目。而且,在这种情况下,您将需要分发 JAR 和所有资源(以及清单和项目中的几乎所有其他内容)。

其次,创建您自己的 JAR,例如在您的 Ant 脚本中添加一个<jar> 操作。这样一来,就可以准确控制其中的内容、编译方式等,而不是对构建系统作为副产品创建的 JAR 进行假设。

例如,这是我的一个 CWAC 项目中的 jar 目标:

<target name="jar" depends="debug">
    <jar
        destfile="bin/CWAC-EndlessAdapter.jar"
        basedir="bin/classes"
    />
</target>

【讨论】:

  • 嗨 CommonsWare,我的 android 库项目中只有一个类,其中包含一些公共方法。它不会使用任何资源或任何布局或任何东西。只是一个逻辑(与 Web 服务通信并提供最终结果的函数).....只是为了测试我删除了对库项目的引用并将该 JAR 文件添加到主项目(到 Java 构建路径)中。它工作得很好,就像之前参考图书馆项目一样。这就是为什么我认为可以将此 JAR 文件分发给第三方使用。
  • @JibW:我们被告知不要认为 JAR 对于再分发是安全的。考虑到自己运行jar 命令需要几秒钟——比你写问题和评论的时间要少——我强烈建议你创建自己的 JAR,所以你负责(并控制)它内容。
  • 您好 CommonsWare,非常感谢您的支持,是的,遵循良好做法总是好的。我尝试将项目导出到 JAR 文件,但没有成功。我确信我在创建(导出)JAR 文件时一定犯了一个错误。如果您可以解释我必须按照手动从库项目中创建 JAR 文件的步骤,那就太好了。我正在使用日食。谢谢....
  • @JibW:就个人而言,我不是从 Eclipse 创建 JAR,而是通过 Ant 从命令行创建。我确信 Eclipse 中有一个用于您尝试做的事情的过程;我只是无法为您提供这些步骤。对不起!
  • 如果您不介意,您想解释一下我如何通过 Ant 使用命令行创建 JAR 文件。试图用 eclipse 来解决这个问题。还没有运气...谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
  • 1970-01-01
  • 2014-01-17
  • 2020-06-14
  • 1970-01-01
  • 2012-08-29
相关资源
最近更新 更多