创建用于 Android 库分发的 JAR

2024-05-09

我正在开发一个 android 库,并希望导出一个 JAR 文件,我可以分发该文件供其他人在他们的应用程序中使用。我不想分发源代码,因为它包含有关发布到我的网络服务器的详细信息。

我尝试使用在 bin 目录中创建的 JAR 文件并将该 jar 文件复制到我的项目中并在我的项目中引用它并勾选导出按钮。

当我尝试运行引用我复制的库的项目时,我的应用程序抛出异常NoClassDefFoundError。我已经做了一些谷歌搜索,我发现的所有内容都表明您必须提供源代码并让用户导入到他们的 IDE 中,然后将该项目引用到他们的应用程序中,这是我不想做的。这一定是可能的,因为其他公司为可以包含的库提供了 JAR 文件。

感谢您的帮助。


我不想分发源代码,因为它包含有关发布到我的网络服务器的详细信息。

请记住,任何想要的人都可以从 JAR 中获取该数据。

这一定是可能的,因为其他公司为可以包含的库提供了 JAR 文件。

AFAIK,这个食谱仍然有效:

  1. 使用源代码、资源等创建一个 Android 库项目,并使其运行

  2. 编译 Java 源代码(例如,通过 Ant)并将其转换为 JAR 文件

  3. 创建原始 Android 库项目的副本以用作分发 Android 库项目

  4. 将步骤 #2 中编译好的 JAR 放入libs/步骤 #3 中的分发库项目。

  5. 删除所有内容src/分发库项目的(但保留现在为空的src/那里的目录)

  6. 分发分发库项目(例如,将其压缩)

这有效地为您提供了您在 Play Services SDK 中看到的内容——一个没有源代码的库项目,而是一个 JARlibs/,以及资源等等。

明天我将重新确认这个食谱,如果我发现它需要针对当前的工具进行调整,我会尽力记住更新这个答案。

新的基于 Gradle 的构建系统支持用于分发库等的 AAR 包,尽管我还没有使用过它。


UPDATE

只要库项目本身不依赖于另一个 JAR 或库项目,此方法就有效。在这些情况下,构建过程中的事情似乎变得一团糟——一切都可以编译,但依赖项中的类引用无法在运行时解析。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建用于 Android 库分发的 JAR 的相关文章

随机推荐